python爬取旅游攻略(1)

参考网址

https://blog.csdn.net/m0_61981943/article/details/131262987

  1. 导入相关库,用get请求方式请求网页方式:
import requests
import parsel
import csv
import time
import random
url = f'https://travel.qunar.com/travelbook/list.htm?page=1&order=hot_heat'
response = requests.get(url)

在这里插入图片描述

返回的 HTML 内容

html_data = response.text
print(html_data)

在这里插入图片描述

Selector类允许你创建一个对象,该对象可以用来从给定的 HTML 或 XML 文本中选择特定的元素。

selector = parsel.Selector(html_data)
print(selector)

在这里插入图片描述

selector.css(‘.li h2 a::attr(href)’):

  • selector是前面创建的parsel.Selector对象,它代表网页的 HTML 内容。
  • .css()是parsel.Selector对象的一个方法,用于使用 CSS 选择器语法来选择网页中的元素。
  • '.li h2 a’是 CSS 选择器表达式,它的含义是选择所有具有类名li的元素下的< h2 >标签内的< a >标签。这个选择器的目的是找到网页中特定位置的链接元素。
  • '::attr(href)'是一个 CSS 伪元素选择器,用于选择< a >标签的href属性。它的作用是提取这些链接元素的href属性值,也就是链接地址。
  • .getall():
    这是对前面选择结果的一个操作,用于获取所有满足选择条件的元素的href属性值,并以列表的形式返回。

所以,整行代码的作用是从网页的 HTML 内容中选择具有特定结构的链接元素,并提取它们的链接地址,存储在一个列表url_list中.

url_list = selector.css('.b_strategy_list li h2 a::attr(href)').getall()

在这里插入图片描述

保存到.csv文件里面

csv_qne = open('旅游攻略.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.writer(csv_qne)
csv_writer.writerow(['地点', '标题', '出发时间', '天数', '人均消费', '人物', '玩法', '浏览量''点赞量' ,'作者'])
detail_id = detail_url.replace('/youji/', '')#字符串中移除/youji/部分
url_1 = 'https://travel.qunar.com/travelbook/note/' + detail_id#构建一个完整的 URL,并将其赋值给url_1。这个完整的 URL 很可能是指向旅游攻略详情页面的地址。
for detail_url in url_list:
    # 字符串的 替换方法
    detail_id = detail_url.replace('/youji/', '')#字符串中移除/youji/部分
    url_1 = 'https://travel.qunar.com/travelbook/note/' + detail_id#构建一个完整的 URL,并将其赋值给url_1。这个完整的 URL 很可能是指向旅游攻略详情页面的地址。
    print(url_1)
    response_1 = requests.get(url_1).text
    selector_1 = parsel.Selector(response_1)

    title
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

week_泽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值