爬取相关机构电话号码及地址
爬取相关机构电话号码及地址
出于需要写了这个爬取一些教育机构的电话号和地址的代码,新手,存在一些问题,在处理电话号时,遇到手机号,固定电话甚至只有十位的情况的影响,代码很简单。
代码如下
import requests
from bs4 import BeautifulSoup
import pandas as pd
import numpy as np
import csv
import re
import os
import io
import time
from fake_useragent import UserAgent
import random
import urllib.request as ulbdef spider_name(url):time.sleep(20)name_together = []headers = {'User-Agent': ua.random}#headers ={'User-Agent':"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0"}html = requests.get(url, headers=headers)print(html)sp2 = BeautifulSoup(html.text, 'html.parser')phone = sp2.find_all('li')for list in phone:data1 = list.select("a")name = data1[0].textname_new = ''.join(name)name_together.append(name_new)return name_together
def spider_phone(url1):time.sleep(20)phone_together = []html = requests.get(url1, headers=headers)sp2 = BeautifulSoup(html.text, 'html.parser')phone = sp2.find_all('li')for list in phone:new = list.find('span', willdecode="true")if new is None:phone_together.append('wu')else:data2 = list.find('span', willdecode="true").get_text()data3 = ''.join(data2)phone_together.append(data3)return phone_togetherdef judge(a):new_phone = []if a[27] == '-':data_new = a[3:27]+a[28:70]for i in range(-1,60,6):n = i+6word = data_new[n]new_phone.append(word)new2_phone = ''.join(new_phone)return new2_phoneelse:for i in range(-1, 60, 6):b = a[3:70]n = i+6word = b[n]new_phone.append(word)new2_phone = ''.join(new_phone)return new2_phoneif __name__=='__main__':url_base = ('http://www.go007.com/ditu/peixunjigou_lishui/')ua = UserAgent()print(ua.random)headers = {'User-Agent': ua.random}# print(headers)with open('C:\\Users\sang-gw\Desktop\\123\\phone.csv', "w", newline='') as csvfile:# csvfile.write(u'\ufeff'.encode('utf8'))writer = csv.writer(csvfile)writer.writerow(['商家名称', '电话号码'])csvfile.close()for i in range(0, 21):if i == 0:url_new = url_baseprint(url_new)else:url_new = url_base + 'p' + str(i) + '/'print(url_new)b = spider_name(url_new)a = spider_phone(url_new)for item in range(0, len(b)):if '0' in (a[item]):e = judge(a[item])with open('C:\\Users\sang-gw\Desktop\\123\\phone.csv', "a", newline='') as csvfile:#csvfile.write(u'\ufeff'.encode('utf8'))writer = csv.writer(csvfile)writer.writerow([b[item], e])else:e = '无'with open('C:\\Users\sang-gw\Desktop\\123\\phone.csv', "a", newline='') as csvfile:# csvfile.write(u'\ufeff'.encode('utf8'))writer = csv.writer(csvfile)writer.writerow([b[item], e])csvfile.close( )
爬取相关机构电话号码及地址相关推荐
- (二)requests爬取智能合约账户地址及其交易记录
1 背景 之前使用Selenium爬取 https://eth.btc.com/accounts 上的账户地址及其交易记录,但是运行时间很长,而且老报一些错误,所以想到换一种方式来爬取智能合约. ...
- java爬取网站电话号码(网络爬虫练习实例--I/O流)
直接上代码了.这里只是爬取首页的,爬取别的页面只需要加个参数,循环一下就可以了! package mobile.phone.number; import java.io.BufferedReader; ...
- Requests库实战(四)---爬取肯德基餐厅地址信息
功能:爬取查询后的肯德基餐厅的地址信息 地址:http://www.kfc.com.cn/kfccda/storelist/index.aspx 亮点是post请求的参数有两组:查询字符串参数,表单数 ...
- 爬虫作业1:爬取肯德基餐厅地址查询
网址:https://www.kfc.com.cn/kfccda/index.aspx 流程与爬取豆瓣电影排行榜一致 分析一下网站: 进入肯德基官网: 点击最下面,餐厅查询. 餐厅关键词写一个城市,例 ...
- python爬虫案例分析:爬取肯德基门店地址数据导入csv文件并最终用excel文档呈现
1.用到的模块: requests pprint csv 2.找到肯德基门店网站进入门店位置页面后,打开抓包工具,找到response中包含所需信息的正确的url信息 3. 导入地址url 4.为防止 ...
- 爬虫——python——百度地图经纬度查询——经纬度查看地点地名——利用百度API获取地名经纬度——爬取所有的中国地址...
import requests address = '40.8587960,86.
- 如何利用 C# 爬取Gate.io交易所的公告!
对于大部分程序员来说,都希望自己或多或少拥有一些比特币(BTC).获取 BTC 的途径除了挖矿计算 Hash 值之外,就是去交易所购买了. 由于 BTC 的价格波动非常剧烈,入手 BTC 的时机就显得 ...
- 如何利用 C# 爬取「当当 - 计算机与互联网图书销量榜」!
前段时间我们介绍了如何利用 C# 语言来爬取"京东 - 计算机与互联网图书销量榜" 网页的方法,通过该方法,我们能够获得"京东"的图书销售排行榜数据. 可是,读 ...
- Python3--爬取数据之911网站信息爬取
上代码: #*************************************************** #这份代码用于从911网站上爬取信息 #其中的IP.txt文件为我本地存IP的文件 ...
- 编程python爬取网页数据教程_实例讲解Python爬取网页数据
一.利用webbrowser.open()打开一个网站: >>> import webbrowser >>> webbrowser.open('http://i.f ...
最新文章
- 为应用“瘦身”!给 Android 应用开发者的十个建议(转)
- python 迭代详解_详解python中的迭代
- Gradle入门:依赖管理
- 除法应用遇到的问题-类型及小数点
- 我为何选择Facebook广告
- 平板竖屏_朱海舟吐槽iPad办公体验:大量竖屏应用缺乏适配
- 05 js面向对象(属性操作符,创建对象)
- 计算机病毒蓝屏,电脑中病毒造成蓝屏怎么解决
- LeetCode摆动序列
- layui table 改变列表字体颜色
- 【数据中台】数据中台架构搭建百科全书
- 动态链接库和静态链接库的区别
- java毕业设计旅游网站设计源码+lw文档+mybatis+系统+mysql数据库+调试
- goldendict使用 添加 .blg 添加字典
- FTP的主动模式和被动模式
- android 震动的实现,android实现震动和声音
- Think in java(四)枚举类enum的基本特性、构造方法与方法覆盖、Switch语句中的enum运用
- 【积跬步以至千里】App Crashed - WriteMiniDump
- 【刷题日记】贪心算法经典题目
- 5大好用又免费BI软件系统