爬虫第3课:二手车搜索

下面这段代码的目的是从58同城网站上爬取与特定二手车品牌相关的网页信息。它使用了urllib.request模块来发送HTTP请求,fake_useragent来生成随机的User-Agent字符串(以避免被网站识别为爬虫),urllib.parse的quote函数来对URL中的查询参数进行编码,以及time模块来添加延时。

以下是代码的详细解释:

导入所需的模块和库。

使用fake_useragent生成一个随机的User-Agent字符串,模拟浏览器的行为。

创建一个包含User-Agent的headers字典。

从用户那里获取二手车品牌作为查询关键字。

循环遍历三个页面(页码为1, 2, 3)。

构造URL,其中pn{page}是页码,key={quote(key)}是查询的关键字(经过URL编码)。
打印构造的URL。
等待3秒,避免发送过于频繁的请求。
使用Request对象发送HTTP GET请求,包含之前构造的headers。
使用urlopen打开请求,并获取响应。
打印响应的状态码(例如:200表示成功)。
注意:

代码中注释掉了print(reopen.read().decode()),这意味着它没有打印整个网页的内容。如果你想要查看网页的内容,可以取消注释。
urlopen方法默认使用GET方法发送请求。
fake_useragent库允许你生成各种浏览器的User-Agent字符串,以模拟不同的浏览器行为。这有助于避免被某些网站阻止或限制。
quote函数用于对URL中的特殊字符进行编码,确保URL的正确性。
添加sleep(3)是为了遵守网站的robots.txt规则或避免对服务器造成过大的负担。在实际应用中,你可能需要更复杂的策略来确定等待时间。
最后,提醒一点,爬虫需要遵守网站的robots.txt规则和相关法律法规,不要对网站造成过大的负担或进行恶意爬取。

二手车搜索实例代码:


from urllib.request import urlopen,Request
from fake_useragent import UserAgent
from urllib.parse import quote
from time import sleep
ua = UserAgent()

headers = {
    'User-Agent':ua.chrome
}

key = input('请输入二手车品牌:')
for page in range(1,4):
    url = f'https://bj.58.com/ershouche/pn{page}/?key={quote(key)}'
    print(url)
    sleep(3)
    req = Request(url,headers=headers)
    reopen = urlopen(req)
    #print(reopen.read().decode())
    print(reopen.getcode())

网络爬虫urlopen模块Request模块UserAgent模块quote模块sleep模块

我来吐槽

*

*