爬取相关机构电话号码及地址

出于需要写了这个爬取一些教育机构的电话号和地址的代码,新手,存在一些问题,在处理电话号时,遇到手机号,固定电话甚至只有十位的情况的影响,代码很简单。

代码如下

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( )

爬取相关机构电话号码及地址相关推荐

  1. (二)requests爬取智能合约账户地址及其交易记录

    1 背景 ​ 之前使用Selenium爬取 https://eth.btc.com/accounts 上的账户地址及其交易记录,但是运行时间很长,而且老报一些错误,所以想到换一种方式来爬取智能合约. ...

  2. java爬取网站电话号码(网络爬虫练习实例--I/O流)

    直接上代码了.这里只是爬取首页的,爬取别的页面只需要加个参数,循环一下就可以了! package mobile.phone.number; import java.io.BufferedReader; ...

  3. Requests库实战(四)---爬取肯德基餐厅地址信息

    功能:爬取查询后的肯德基餐厅的地址信息 地址:http://www.kfc.com.cn/kfccda/storelist/index.aspx 亮点是post请求的参数有两组:查询字符串参数,表单数 ...

  4. 爬虫作业1:爬取肯德基餐厅地址查询

    网址:https://www.kfc.com.cn/kfccda/index.aspx 流程与爬取豆瓣电影排行榜一致 分析一下网站: 进入肯德基官网: 点击最下面,餐厅查询. 餐厅关键词写一个城市,例 ...

  5. python爬虫案例分析:爬取肯德基门店地址数据导入csv文件并最终用excel文档呈现

    1.用到的模块: requests pprint csv 2.找到肯德基门店网站进入门店位置页面后,打开抓包工具,找到response中包含所需信息的正确的url信息 3. 导入地址url 4.为防止 ...

  6. 爬虫——python——百度地图经纬度查询——经纬度查看地点地名——利用百度API获取地名经纬度——爬取所有的中国地址...

    import requests address = '40.8587960,86.

  7. 如何利用 C# 爬取Gate.io交易所的公告!

    对于大部分程序员来说,都希望自己或多或少拥有一些比特币(BTC).获取 BTC 的途径除了挖矿计算 Hash 值之外,就是去交易所购买了. 由于 BTC 的价格波动非常剧烈,入手 BTC 的时机就显得 ...

  8. 如何利用 C# 爬取「当当 - 计算机与互联网图书销量榜」!

    前段时间我们介绍了如何利用 C# 语言来爬取"京东 - 计算机与互联网图书销量榜" 网页的方法,通过该方法,我们能够获得"京东"的图书销售排行榜数据. 可是,读 ...

  9. Python3--爬取数据之911网站信息爬取

    上代码: #*************************************************** #这份代码用于从911网站上爬取信息 #其中的IP.txt文件为我本地存IP的文件 ...

  10. 编程python爬取网页数据教程_实例讲解Python爬取网页数据

    一.利用webbrowser.open()打开一个网站: >>> import webbrowser >>> webbrowser.open('http://i.f ...

最新文章

  1. 为应用“瘦身”!给 Android 应用开发者的十个建议(转)
  2. python 迭代详解_详解python中的迭代
  3. Gradle入门:依赖管理
  4. 除法应用遇到的问题-类型及小数点
  5. 我为何选择Facebook广告
  6. 平板竖屏_朱海舟吐槽iPad办公体验:大量竖屏应用缺乏适配
  7. 05 js面向对象(属性操作符,创建对象)
  8. 计算机病毒蓝屏,电脑中病毒造成蓝屏怎么解决
  9. LeetCode摆动序列
  10. layui table 改变列表字体颜色
  11. 【数据中台】数据中台架构搭建百科全书
  12. 动态链接库和静态链接库的区别
  13. java毕业设计旅游网站设计源码+lw文档+mybatis+系统+mysql数据库+调试
  14. goldendict使用 添加 .blg 添加字典
  15. FTP的主动模式和被动模式
  16. android 震动的实现,android实现震动和声音
  17. Think in java(四)枚举类enum的基本特性、构造方法与方法覆盖、Switch语句中的enum运用
  18. 【积跬步以至千里】App Crashed - WriteMiniDump
  19. 【刷题日记】贪心算法经典题目
  20. 5大好用又免费BI软件系统

热门文章

  1. 10 道超级高频 Java 面试题,助力金三银四
  2. 软件测试中的版本控制
  3. bupt2021秋季计算导论第十三次实验
  4. 如何搭建WordPress个人博客网站?
  5. ftp服务器上传显示550,ftp上传文件服务器报550
  6. cab文件介绍及制作方法 1
  7. 正弦和余弦(角度到弧度)
  8. 2019年我能变强组队训练赛第十场 C Criss-Cross Cables(优先队列模拟)
  9. 《Real-Time Rendering 4th Edition》读书笔记--简单粗糙翻译 第三章 图形处理单元 The Graphics Processing Unit
  10. 亲爱的,别把上帝缩小了 ---- 读书笔记3