使用requests库及XPath解析网页数据

任务描述:

使用requests以及XPath提取景点以及网址和相应景点的评论信息,并保存为txt以及csv文件。

任务实现:
import requests
from lxml import etree
import pandas as pd

url='https://travel.qunar.com/search/place/23-shandong-298984/4-----0/1'
headers={'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36'}

r=requests.get(url,headers=headers)
r.encoding='utf-8'
print(r.status_code)
r=r.text
tree=etree.HTML(r)

x=tree.xpath('//div[@class="right_bar"]/ul//li')
#print(x)
y=tree.xpath('//div[@class="right_bar"]/ul/li/div[2]/h2/a/@href')
#print(y)
for a in y:
    rep=requests.get(a)
    rep.encoding='utf-8'
    rep=rep.text
    trees=etree.HTML(rep)
    p=trees.xpath('//*[@id="gs"]/div[1]//p/text()')

    for page in range(0,4):
        page=str(page)
        data={
            'poiList':'true',
            'sortField':'1',
            'rank':'0',
            'pageSize':'5',
            'page':page
             }
        response = requests.post(url, data=data, headers=headers)

    q=trees.xpath('//*[@id="comment_box"]//li//div[1]//div//div[3]//p[1]/text()')

    file = "网址:"+a+",景点信息:"+str(p)+",评论信息:"+str(q)
    with open('./评论.txt', 'a', encoding="utf-8") as fp:
        fp.write(file + '\n')
    with open('./评论.csv', 'a', encoding="utf-8") as f:
        f.write(file + '\n')

存储结果:

csv文件:

txt文件:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值