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机器学习库scikit-learn安装与基本使用教程
Jun 25 Python
python与caffe改变通道顺序的方法
Aug 04 Python
python 协程中的迭代器,生成器原理及应用实例详解
Oct 28 Python
python3 assert 断言的使用详解 (区别于python2)
Nov 27 Python
python序列化与数据持久化实例详解
Dec 20 Python
.dcm格式文件软件读取及python处理详解
Jan 16 Python
jupyter lab的目录调整及设置默认浏览器为chrome的方法
Apr 10 Python
PyQt5连接MySQL及QMYSQL driver not loaded错误解决
Apr 29 Python
python读取xml文件方法解析
Aug 04 Python
python Cartopy的基础使用详解
Nov 01 Python
Python连接Postgres/Mysql/Mongo数据库基本操作大全
Jun 29 Python
python运算符之与用户交互
Apr 13 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
第八节 访问方式 [8]
2006/10/09 PHP
PHP 冒泡排序算法的实现代码
2010/08/08 PHP
php获得客户端浏览器名称及版本的方法(基于ECShop函数)
2015/12/23 PHP
Zend Studio使用技巧两则
2016/04/01 PHP
javascript innerHTML、outerHTML、innerText、outerText的区别
2008/11/24 Javascript
JS request函数 用来获取url参数
2010/05/17 Javascript
JS分页效果示例
2013/10/11 Javascript
简单的两种Extjs formpanel加载数据的方式
2013/11/09 Javascript
jQuery表格插件datatables用法详解
2020/11/23 Javascript
论JavaScript模块化编程
2016/03/07 Javascript
jQuery判断checkbox选中状态
2016/05/12 Javascript
AngularJs实现分页功能不带省略号的代码
2016/05/30 Javascript
BootstrapTable+KnockoutJS自定义T4模板快速生成增删改查页面
2016/08/01 Javascript
浅谈jQuery中的eq()与DOM中element.[]的区别
2016/10/28 Javascript
微信小程序 标签传入数据
2017/05/08 Javascript
bootstrap3-dialog-master模态框使用详解
2017/08/22 Javascript
vue mint-ui学习笔记之picker的使用
2017/10/11 Javascript
React Native 使用Fetch发送网络请求的示例代码
2017/12/02 Javascript
微信小程序实现跑马灯效果
2020/10/21 Javascript
vue滚动tab跟随切换效果
2020/06/29 Javascript
JavaScript进阶(二)词法作用域与作用域链实例分析
2020/05/09 Javascript
[52:40]完美世界DOTA2联赛PWL S2 Magma vs GXR 第一场 11.29
2020/12/02 DOTA
Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程
2014/11/18 Python
Python极简代码实现杨辉三角示例代码
2016/11/15 Python
Python使用win32com实现的模拟浏览器功能示例
2017/07/13 Python
Python实现感知器模型、两层神经网络
2017/12/19 Python
python 设置文件编码格式的实现方法
2017/12/21 Python
python表格存取的方法
2018/03/07 Python
Python PIL读取的图像发生自动旋转的实现方法
2019/07/05 Python
python利用itertools生成密码字典并多线程撞库破解rar密码
2019/08/12 Python
美国正版电视节目和电影在线观看:Hulu
2018/05/24 全球购物
德国高尔夫商店:Golfshop.de
2019/06/22 全球购物
小区门卫岗位职责范本
2014/08/24 职场文书
2014各大专业毕业生自我评价
2014/09/17 职场文书
计划生育工作汇报
2014/10/28 职场文书
SQL Server 中的事务介绍
2022/05/20 SQL Server