Python爬取商家联系电话以及各种数据的方法


Posted in Python onNovember 10, 2018

上次学会了爬取图片,这次就想着试试爬取商家的联系电话,当然,这里纯属个人技术学习,爬取过后及时删除,不得用于其它违法用途,一切后果自负。

首先我学习时用的是114黄页数据。

下面四个是用到的模块,前面2个需要安装一下,后面2个是python自带的。

import requests
from bs4 import BeautifulSoup
import csv
import time

然后,写个函数获取到页面种想要的数据,记得最后的return返回一下,因为下面的函数要到把数据写到csv里面。

def get_content(url,data=None):
 header = {
  'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
  'Accept-Encoding': 'gzip, deflate',
  'Accept-Language': 'zh-CN,zh;q=0.8',
  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.104 Safari/537.36',
 }
 r = requests.get(url, headers=header)
 soup = BeautifulSoup(r.content, 'html.parser')
 data = soup.body.find('div',{'id':'news_con'})
 ul = data.find('ul')
 lis = ul.find_all('li')
 pthons=[]

 for item in lis:
  rows=[]
  name= item.find('h4').string
  rows.append(name)
  tel = item.find_all("div")[2].string
  rows.append(tel)
  pthons.append(rows)
  time.sleep(1)
 return pthons

接着:把数据写到表格里面。我这里用到的是csv,方便阅览。

def write_data(data,name):
 file_name=name
 with open(file_name, "w", newline='') as csvfile:
  writer = csv.writer(csvfile)
  writer.writerow(["商铺名称", "联系电话"])
  writer.writerows(data)
  print('抓取完成')

最后就是执行这些函数:

if __name__ == '__main__':
 url = 'http://ty.114chn.com/CustomerInfo/Customers?cid=008004008&page=2'
 mydata = get_content(url)
 write_data(mydata,'phone.csv')

在这里我想到应该把url写成动态的,因为这里面有页数。让page写成循环自动+1,当然,可以在网页看到一共多少页。写个循环执行。就更完美了。

Python爬取商家联系电话以及各种数据的方法

以上这篇Python爬取商家联系电话以及各种数据的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Python的Flask框架中实现单元测试的教程
Apr 20 Python
Python通过select实现异步IO的方法
Jun 04 Python
Python中文字符串截取问题
Jun 15 Python
python opencv 直方图反向投影的方法
Feb 24 Python
一文带你了解Python中的字符串是什么
Nov 20 Python
11个Python Pandas小技巧让你的工作更高效(附代码实例)
Apr 30 Python
python的几种矩阵相乘的公式详解
Jul 10 Python
Python正则表达式学习小例子
Mar 03 Python
python tkinter 设置窗口大小不可缩放实例
Mar 04 Python
Python使用requests xpath 并开启多线程爬取西刺代理ip实例
Mar 06 Python
python中线程和进程有何区别
Jun 17 Python
Python使用Beautiful Soup(BS4)库解析HTML和XML
Jun 05 Python
Python中的取模运算方法
Nov 10 #Python
在Python中获取两数相除的商和余数方法
Nov 10 #Python
Python解决两个整数相除只得到整数部分的实例
Nov 10 #Python
从DataFrame中提取出Series或DataFrame对象的方法
Nov 10 #Python
pandas 数据归一化以及行删除例程的方法
Nov 10 #Python
python 重命名轴索引的方法
Nov 10 #Python
Pandas:Series和DataFrame删除指定轴上数据的方法
Nov 10 #Python
You might like
php获得当前的脚本网址
2007/12/10 PHP
php自动适应范围的分页代码
2008/08/05 PHP
php修改上传图片尺寸的方法
2015/04/14 PHP
PHP 500报错的快速解决方法
2016/12/14 PHP
php实现水印文字和缩略图的方法示例
2016/12/29 PHP
PHP测试框架PHPUnit组织测试操作示例
2018/05/28 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
验证javascript中Object和Function的关系的三段简单代码
2010/06/27 Javascript
ie中js创建checkbox默认选中问题探讨
2013/10/21 Javascript
node.js正则表达式获取网页中所有链接的代码实例
2014/06/03 Javascript
jQuery html()方法使用不了无法显示内容的问题
2014/08/06 Javascript
JQuery基础语法小结
2015/02/27 Javascript
JS实现的最简Table选项卡效果
2015/10/14 Javascript
JavaScript基础语法之js表达式
2016/06/07 Javascript
jQuery给指定的table动态添加删除行的操作方法
2016/10/12 Javascript
JavaScript中set与get方法用法示例
2018/08/15 Javascript
微信小程序获取用户信息的两种方法wx.getUserInfo与open-data实例分析
2019/05/03 Javascript
jQuery+ajax实现批量删除功能完整示例
2019/06/06 jQuery
详解js location.href和window.open的几种用法和区别
2019/12/02 Javascript
[05:09]第二届DOTA2亚洲邀请赛决赛日比赛集锦:iG 3:0 OG夺冠
2017/04/05 DOTA
python 文件与目录操作
2008/12/24 Python
基于Python如何使用AIML搭建聊天机器人
2016/01/27 Python
python入门教程之识别验证码
2017/03/04 Python
Selenium定时刷新网页的实现代码
2018/10/31 Python
Pyqt QImage 与 np array 转换方法
2019/06/27 Python
如何基于Python批量下载音乐
2019/11/11 Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
2020/04/13 Python
Python如何输出警告信息
2020/07/30 Python
英国领先的汽车轮胎和快速健康中心:Kwik Fit
2017/10/29 全球购物
台湾SHOPRO购物行家:亚洲首创影视.3C.家电.优质购物平台
2018/05/07 全球购物
母婴店促销方案
2014/03/05 职场文书
活动总结格式范文
2014/04/26 职场文书
安全生产月标语
2014/10/07 职场文书
2015新生加入学生会自荐书
2015/03/24 职场文书
2015年大学社团工作总结
2015/04/09 职场文书
小学新课改心得体会
2016/01/22 职场文书