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 文件操作实现代码
Oct 07 Python
详解Python编程中基本的数学计算使用
Feb 04 Python
python下如何查询CS反恐精英的服务器信息
Jan 17 Python
R vs. Python 数据分析中谁与争锋?
Oct 18 Python
Django 使用logging打印日志的实例
Apr 28 Python
Python生成rsa密钥对操作示例
Apr 26 Python
python列表生成器迭代器实例解析
Dec 19 Python
学习Python列表的基础知识汇总
Mar 10 Python
浅谈Python3中print函数的换行
Aug 05 Python
Pygame框架实现飞机大战
Aug 07 Python
Python实现对word文档添加密码去除密码的示例代码
Dec 29 Python
Python 的演示平台支持 WSGI 接口的应用
Apr 20 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 验证码的实现代码
2011/07/17 PHP
浅析PHP 按位与或 (^ 、&)
2013/06/21 PHP
PHP实现单例模式最安全的做法
2014/06/13 PHP
yii使用bootstrap分页样式的实例
2017/01/17 PHP
鼠标滚轮改变图片大小的示例代码
2013/11/20 Javascript
浅析JavaScript基本类型与引用类型
2014/05/28 Javascript
jquery弹窗插件colorbox绑定动态生成元素的方法
2014/06/20 Javascript
Bootstrap树形控件使用方法详解
2016/01/27 Javascript
js点击返回跳转到指定页面实现过程
2020/08/20 Javascript
微信小程序购物商城系统开发系列-目录结构介绍
2016/11/21 Javascript
使用JS正则表达式 替换括号,尖括号等
2016/11/29 Javascript
利用javascript实现的三种图片放大镜效果实例(附源码)
2017/01/23 Javascript
解决vue router使用 history 模式刷新后404问题
2017/07/19 Javascript
详解angular笔记路由之angular-router
2017/09/12 Javascript
Angular实现的简单定时器功能示例
2017/12/28 Javascript
利用JS动态生成隔行换色HTML表格的两种方法
2018/10/09 Javascript
Angular之jwt令牌身份验证的实现
2020/02/14 Javascript
Vue 中 template 有且只能一个 root的原因解析(源码分析)
2020/04/11 Javascript
JavaScript 面向对象程序设计详解【类的创建、实例对象、构造函数、原型等】
2020/05/12 Javascript
如何在面试中手写出javascript节流和防抖函数
2020/10/22 Javascript
wepy--用vantUI 实现上弹列表并选择相应的值操作
2020/11/03 Javascript
[40:48]DOTA2上海特级锦标赛D组败者赛 Liquid VS COL第二局
2016/02/28 DOTA
Python对象体系深入分析
2014/10/28 Python
Python自动化部署工具Fabric的简单上手指南
2016/04/19 Python
python文件名和文件路径操作实例
2017/09/29 Python
Python实现类似比特币的加密货币区块链的创建与交易实例
2018/03/20 Python
Python如何安装第三方模块
2020/05/28 Python
世界上最大的各式箱包网络零售店:eBag
2016/07/21 全球购物
母亲追悼会答谢词
2014/01/27 职场文书
乡镇遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
2015年春节标语口号
2014/12/09 职场文书
电影建党伟业观后感
2015/06/01 职场文书
英语读书笔记
2015/07/02 职场文书
干货:如何写好观后感 !
2019/05/21 职场文书
详解运行Python的神器Jupyter Notebook
2021/06/03 Python
Python类方法总结讲解
2021/07/26 Python