python爬去哪儿攻略

Python爬取去哪儿的攻略

入门教程

不需要html和css的相关知识也可以做

代码实现的步骤
1.向目标网页发送网络请求
2.获取数据,网页源代码
3.筛选我们要的数据
4.向每一个详情页链接发送网络请求
5.获取数据 网络源代码
6.提取数据(数据清洗)
    时间 天数 人均费用 地点

需要用到的模块:

import requests #发送请求
import parsel #筛选数据

我将按这六步来实现内容的爬取:

1.向目标网页发送网络请求

url='去哪儿的详情页面的链接'
response=requests.get(url)#发送请求

2.获取数据

#print(response.text) 
#这个是打印出来看是否可以成功访问,若访问不了可能有反爬虫机制,这时我们要加一个自己浏览器的访问头
html_data=response.text#获取数据

2.1访问头

邮寄页面检查/按12来打开开发者工具

拉到下面看user-agent:

#请求头:把python的代码伪装成客户端给服务器发送请求
headers={'自己的user-agent'}

3.筛选数据

selectors=parsel.Selector(html_data)#筛选数据
url_list=selectors.css('body > div.qn_mainbox > div > div.left_bar > ul > li > h2 > a::attr(href)').getall()#css选择器选取网页内容

右击该部分代码选中copy selector

然后将该部分的代码改成列表就行,body > div.qn_mainbox > div > div.left_bar > ul > li:nth-child(1) > h2 > a,即将li:nth-child(1)修改为li,不用选中第几个子部分,即为列表

url_list=selectors.css('body > div.qn_mainbox > div > div.left_bar > ul > li > h2 > a::attr(href)').getall()#css选择器选取网页内容

4.向每一个详情页发送请求

for detail_url in url_list:
    detail_id=detail_url.replace('/youji/','')
#replace是将不用的代码删掉,然后把有用的id加到url后面    detail_url='https://travel.qunar.com/travelbook/note/'+detail_id
    response_1=requests.get(detail_url)#向每一个详情页发送网络请求

5.获取数据

data_html_1=response_1.text#获取数据,网页源代码

6.提取数据

数据的代码去网页的开发者工具找,选中要提取的部分然后copy selector,这个就是你要的数据的代码,但是我们要文本部分,所以用::(两个冒号)来提取text部分,最后将提取的数据全都打印出来

结果如下:

### 使用Python编写爬虫程序抓取去哪儿网数据 为了实现这一目标,需要了解并遵循几个关键步骤和技术要点。 #### 准备工作 环境搭建是启动任何项目的第一步。确保安装了必要的开发工具和库,比如 Python 解释器以及常用的 Web 抓取框架 Scrapy 或 Beautiful Soup 和请求库 requests[^2]。 #### 编写基本的爬虫脚本 下面是一个简单的例子来展示如何利用 `requests` 库发送 HTTP 请求获取页面内容,并使用 `BeautifulSoup` 来解析 HTML 文档: ```python import requests from bs4 import BeautifulSoup url = 'https://www.qunar.com/' # 假设这是去哪儿网首页链接 headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" } response = requests.get(url, headers=headers) if response.status_code == 200: soup = BeautifulSoup(response.text, 'html.parser') # 这里可以加入具体的标签查找逻辑,例如寻找特定类名或ID下的元素 else: print(f"Failed to retrieve the page with status code {response.status_code}") ``` 这段代码展示了发起 GET 请求的方式,并设置了 User-Agent 头部信息模拟浏览器访问行为;接着用 BeautifulSoup 对返回的内容进行了初步解析。 #### 数据提取与处理 对于具体的数据项(如票价),则需进一步定位 DOM 结构中的相应位置。这通常涉及到对网站结构的研究,找到包含所需信息的具体 HTML 标签及其属性。由于实际网页可能较为复杂,建议先手动查看目标网页源码,识别出有用的信息所在之处后再编程自动化抽取过程[^1]。 需要注意的是,在构建更复杂的爬虫时,还应该考虑异常情况处理、反机制规避等问题。此外,频繁地向服务器发出请求可能会违反服务条款甚至触犯法律,因此务必谨慎行事,尊重对方站点的规定[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值