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 strip()函数 介绍
May 24 Python
用Python写一个无界面的2048小游戏
May 24 Python
Python中装饰器高级用法详解
Dec 25 Python
python对list中的每个元素进行某种操作的方法
Jun 29 Python
Sanic框架请求与响应实例分析
Jul 16 Python
python生成带有表格的图片实例
Feb 03 Python
深入理解Django-Signals信号量
Feb 19 Python
Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str
Aug 07 Python
Python坐标线性插值应用实现
Nov 13 Python
Python中Flask-RESTful编写API接口(小白入门)
Dec 11 Python
详解python tkinter包获取本地绝对路径(以获取图片并展示)
Sep 04 Python
通过Python把学姐照片做成拼图游戏
Feb 15 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
PHP5中虚函数的实现方法分享
2011/04/20 PHP
PHP Switch 语句之学习笔记
2013/09/21 PHP
PHP实现原比例生成缩略图的方法
2016/02/03 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
2016/03/08 PHP
PHP实现清除MySQL死连接的方法
2016/07/23 PHP
PHP实现的登录,注册及密码修改功能分析
2016/11/25 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
Yii使用DbTarget实现日志功能的示例代码
2020/07/21 PHP
js点击事件链接的问题解决
2014/04/25 Javascript
javascript比较两个日期的先后示例代码
2014/12/31 Javascript
jQuery中hasClass()方法用法实例
2015/01/06 Javascript
Javascript中的几种URL编码方法比较
2015/01/23 Javascript
JS实现随页面滚动显示/隐藏窗口固定位置元素
2016/02/26 Javascript
JavaScript中日常收集常见的10种错误(推荐)
2017/01/08 Javascript
js实现带缓动动画的导航栏效果
2017/01/16 Javascript
node.js调用Chrome浏览器打开链接地址的方法
2017/05/17 Javascript
vue数字类型过滤器的示例代码
2017/09/07 Javascript
原生JS实现的多个彩色小球跟随鼠标移动动画效果示例
2018/02/01 Javascript
小程序hover-class点击态效果实现
2019/02/26 Javascript
vue中多路由表头吸顶实现的几种布局方式
2019/04/12 Javascript
vue中使用elementUI组件手动上传图片功能
2019/12/13 Javascript
解决Vue router-link绑定事件不生效的问题
2020/07/22 Javascript
JavaScript canvas实现雨滴特效
2021/01/10 Javascript
[03:18]DOTA2放量测试专访820:希望玩家加入国服大家庭
2013/08/25 DOTA
[04:05]TI9战队采访 - Natus Vincere
2019/08/22 DOTA
在Python的Flask框架中构建Web表单的教程
2016/06/04 Python
django+xadmin+djcelery实现后台管理定时任务
2018/08/14 Python
pycharm重置设置,恢复默认设置的方法
2018/10/22 Python
Python数据结构之栈、队列及二叉树定义与用法浅析
2018/12/27 Python
python实战串口助手_解决8串口多个发送的问题
2019/06/12 Python
如何爬取通过ajax加载数据的网站
2019/08/15 Python
基于Python的图像阈值化分割(迭代法)
2020/11/20 Python
css3 transform导致子元素固定定位变成绝对定位的方法
2020/03/06 HTML / CSS
公司员工宿舍管理制度
2015/08/03 职场文书
新农村建设指导员工作总结
2015/08/13 职场文书
再见,2019我们不负使命;你好,2020我们砥砺前行
2020/01/03 职场文书