PYthon高级应用第5次作业-网络爬虫练习-马蜂窝泉州热门景点

------------恢复内容开始------------

马蜂窝泉州热门景点的爬取

首先先进入网站http://www.mafengwo.cn/search/q.php?q=%E6%B3%89%E5%B7%9E

打开开发者工具对其html进行分析

这里我使用的是xpath对其进行分析

我们不难发现马蜂窝泉州热门景点的名称都是在//*[@id="_j_search_result_left"]/div[2]/div[2]/a[?]/div/div[2]/p[1]的位置中,只有[?]的位置有改变

同理,蜂评数也是一样的,在//*[@id="_j_search_result_left"]/div[2]/div[2]/a[?]/div/div[2]/p[2]/b/font的位置中,也是只有[?]有改变

那么我们来对它进行提取并写入文本泉州热门景点排行榜.txt中。结果如图:

下面附上代码及注译:

扫描二维码关注公众号,回复: 9897640 查看本文章
 1 import requests
 2 from lxml import etree  #我使用的是xpath和requests库爬取和解析网页数据
 3 import os
 4 url='http://www.mafengwo.cn/search/q.php?q=%E6%B3%89%E5%B7%9E'
 5 headers= {'User-Agent':'Mozilla/5.0'}#设置请求头
 6 response=requests.get(url=url,headers=headers)
 7 html=etree.HTML(response.text)#将网页数据用xpath解析
 8 jingdian=[] #准备装入景点的xpath数据
 9 pinlun=[] #准备装入点评数的xpath数据
10 jingdianming=[]  #准备装入景点名
11 pinlunming=[] #准备装入点评数
12 
13 #写好分析返回的xpath数据的除杂函数
14 def jd(x):
15     srcs=html.xpath(x)
16     srcs=str(srcs[0])
17     a=srcs.replace(' ','').replace("\n",'')#转为字符串类型的文本并除去多余字符
18     return a
19 
20 
21 for i in range(1,9):
22     jingdian.append('//*[@id="_j_search_result_left"]/div[2]/div[2]/a[{}]/div/div[2]/p[1]/text()'.format(i))
23     #利用开发者工具发现景点名的规律,并装入jingdian数组中
24 for x in range(8):
25     jingdianming.append(jd(jingdian[x]))
26     #利用刚刚写好的jd函数逐个解析景点名的xpath数据,并将返回值装入jingdianming数组中
27     
28 for p in range(1,9):
29     pinlun.append('//*[@id="_j_search_result_left"]/div[2]/div[2]/a[{}]/div/div[2]/p[2]/b/font/text()'.format(p))
30     #利用开发者工具发现景点名的规律,并装入pinlun数组中
31 for y in range(8):
32     pinlunming.append(jd(pinlun[y]))
33     #利用刚刚写好的jd函数逐个解析评论数评论的xpath数据,并将返回值装入pinlunming数组中
34 
35 
36 with open("泉州热门景点排行榜.txt","w") as f:
37     for a in range(1,9):
38         f.write('TOP{}----{}----{}条蜂评'.format(a,jingdianming[a-1],pinlunming[a-1]))    
39     #将数据写入到泉州热门景点排行榜.txt中
40 print("泉州热门景点排行榜")
41 for a in range(1,9):
42     print('TOP{}----{}----{}条蜂评'.format(a,jingdianming[a-1],pinlunming[a-1]))
43 #输出查看结果
44     

------------恢复内容结束------------

猜你喜欢

转载自www.cnblogs.com/naimaox/p/naimaox.html