python爬虫实战一|大众点评网

Posted 向阳-Y.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python爬虫实战一|大众点评网相关的知识,希望对你有一定的参考价值。

PS:如果不懂的可以看我的上一篇文章快速入门Python爬虫

阶段类型问题需要做到
1请求网页数据在哪里?发现网址url规律
2请求如何获取网页数据先尝试使用requests成功访问一个url,拿到一个页面数据
3解析html中定义需要的数据使用pyquery对这一个页面的网页数据进行解析
3解析从json中定位需要的数据使用json或resp.json()进行json网页数据解析
4存储如何存储数据使用csv库将数据存储到csv文件中
5大功告成重复2-4for循环对所有的url进行访问解析存储

以大众点评为例:
http://www.dianping.com/shanghai/hotel

1.发现网址url规律

大众点评网址规律,每一页对应p1,p2…

针对规律写出如下代码

>template='http://www.dianping.com/shanghai/hotel/p{page}'
>for p in range(1,51):
	url=template.format(page=p)
	print(url)

2.拿到一个页面数据

先尝试使用requests成功访问一个url,拿到一个页面数据:以p1为例

>import requests
>url='http://www.dianping.com/shanghai/hotel/p1'
>headers={"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) >AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36"}
>resp=requests.get(url,headers=headers)
>resp.text[:1000]  #表示获取前1000个字符内容

通过headers伪装成功拿到:

3.数据解析

使用pyquery对这一个页面的网页数据进行解析,首先使用select工具定位到hotel-block块

通过tag多级进行精确定位

依次类推,改进代码:最终

doc=PyQuery(resp.text)
for hotel in doc.items('.hotel-block'):
	hotel_name=hotel('.hotel-name-link').text()
	addr1=hotel('.place a').text()
	addr2=hotel('.walk-dist').text()[1:]
	print(hotel_name,addr1,addr2)

4.存储数据

使用csv库将数据存储到csv文件中,–>不会的请点我<–

以上是关于python爬虫实战一|大众点评网的主要内容,如果未能解决你的问题,请参考以下文章

Python3爬虫实战:爬取大众点评网某地区所有酒店相关信息

Python爬虫实战,Scrapy实战,大众点评爬虫

python爬虫实例详细介绍之爬取大众点评的数据

大众点评网商家数据采集爬虫实现源码

爬取大众点评评论犯法吗

python爬虫爬取大众点评并导入redis