基于requests实现爬虫百度内容---py版本

一·requests核心内容:

   requests 作为一个专门为「人类」编写的 HTTP 请求库,其易用性很强,因此在推出之后就迅速成为 Python 中首选的 HTTP 请求库。requests 库的最大特点是提供了简单易用的 API,让编程人员可以轻松地提高效率。由于 requests 不是 Python 的标准库,因此在使用之前需要进行安装

 

pip  install requests
(1)通过 requests 可以完成各种类型的 HTTP 请求,包括 HTTP、HTTPS、HTTP1.0、HTTP1.1 及各种请求方法。requests 库支持的 HTTP 方法。

二 ·requests支持的方法

import requests
requests.get("http://httpbin.org/get")
requests.post("http://httpbin.org/post")
requests.put("http://httpbin.org/put")
requests.delete("http://httpbin.org/delete")
requests.head("http://httpbin.org/get")
requests.options("http://httpbin.org/get")

■ get——发送一个 GET 请求,用于请求页面信息。

■ options——发送一个 OPTIONS 请求,用于检查服务器端相关信息。

■ head——发送一个 HEAD 请求,类似于 GET 请求,但只请求页面的响应头信息。

■ post——发送一个 POST 请求,通过 body 向指定资源提交用户数据。

■ put——发送一个 PUT 请求,向指定资源上传最新内容。

■ patch——发送一个 PATCH 请求,同 PUT 类似,可以用于部分内容更新。

■ delete——发送一个 DELETE 请求,向指定资源发送一个删除请求。

可以看到,requests 使用与 HTTP 请求方法同名的 API 来提供相应的 HTTP 请求服务,从而降低了编程人员的学习和记忆成本。另外,这些 API 方法都调用同一个基础方法,因此在调用参数的使用上也基本保持一致。

三·案例--

import requests
from lxml import etree

# 百度首页

res = requests.get("https://www.baidu.com/", headers={
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36"
})

selector = etree.HTML(res.text)
items = selector.xpath('//ul[@class="s-hotsearch-content"]/li[contains(@class,"hotsearch-item")]')
print("items:", items)
for item in items:
    href = item.xpath('./a/@href')[0]
    title = item.xpath('.//span[@class="title-content-title"]/text()')[0]
    print(title, href)

这是代码运行的结果

Py requests过不了百度可能是因为百度的反爬虫机制阻止了requests库的访问。这种情况通常是因为百度检测到了请求中的一些特征,认为我们是爬虫程序,而不是真实的浏览器访问。 为了解决这个问题,我们可以尝试以下几个方法: 1. 设置headers:在发送请求之前,我们可以设置合适的headers,模拟真实的浏览器请求。具体包括User-Agent、Referer等。这样百度的服务器会认为我们是正常的用户请求,从而通过检测。 2. 使用代理:通过使用代理服务器来发送请求可以改变我们的IP地址,从而绕过百度的反爬虫机制。我们可以使用一些免费或付费的代理服务,将请求发送到百度服务器。 3. 使用其他爬虫库:如果requests库无法通过百度的反爬虫机制,我们可以尝试使用其他的爬虫库,例如Scrapy或Selenium。这些库功能更加强大,可以更好地模拟浏览器行为,提高请求的成功率。 4. 查看百度的robots.txt文件:我们可以查看百度网站的robots.txt文件,了解一些针对爬虫的禁止访问规则。如果requests库的请求被robots.txt文件所禁止,我们需要遵守其规则,修改请求的url或参数,以符合百度的要求。 需要注意的是,尽管尝试上述方法,但我们需要遵守网站的使用政策和法律法规,不应进行非法、恶意的网络行为。无论是使用requests库还是其他爬虫库,我们都应该遵守合法的使用方式,尊重网站的规定和隐私。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值