爬虫第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规则和相关法律法规,不要对网站造成过大的负担或进行恶意爬取。

Pythonit教程网(blog.pythonit.cn)

 Python全栈视频课件获取:www.dqu.cc

加速高防cdn:woaiyundun.cn

二手车搜索实例代码:

# coding:utf-8
# 时间:2024/3/16 17:49
# Pythonit教程网(blog.pythonit.cn)
# Python全栈视频课件获取:www.dqu.cc
# 加速高防cdn:woaiyundun.cn
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())


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/757031.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Panasonic松下PLC如何数据采集?如何实现快速接入IIOT云平台?

在工业自动化领域,数据采集与远程控制是提升生产效率、优化资源配置的关键环节。对于使用Panasonic松下PLC的用户来说,如何实现高效、稳定的数据采集,并快速接入IIOT云平台,是摆在他们面前的重要课题。HiWoo Box工业物联网关以其强…

WordPress站点如何实现发布文章即主动推送到神马搜索引擎?

平时boke112百科很少关注到神马搜索引擎,近日有站长留言想要实现WordPress站点发布文章就主动推送到神马搜索引擎,而且推送成功就自动添加一个自定义字段,以防重复推送。 登录进入神马站长平台后才知道神马也有一个API推送功能,不…

Tcl学习笔记(一)——环境搭建及基本语法

一、Tcl简介 TCL(Tool Command Language,即工具命令语言)是一种解释执行的脚本语言。所谓解释执行语言,是指其不需要通过编译和联结,而是直接对每条语句进行顺序解释、执行。 TCL包含语言和工具库,TCL语言主…

UE5拷贝复制快捷键修改Ctrl+w

UE5默认修改了原来的Ctrl w的快捷键方式,改成Ctrl D 非常不习惯 其实可以在编辑器中进行修改快捷键的 位置在 Editor Preferences ,搜索 Duplicate, 在其中的command selection中,修改 按键为Ctrl w 如图所示; …

LeetCode 面试经典150题 380.O(1)时间插入、删除和获取随机元素

题目: 实现RandomizedSet 类: RandomizedSet() 初始化 RandomizedSet 对象bool insert(int val) 当元素 val 不存在时,向集合中插入该项,并返回 true ;否则,返回 false 。bool remove(int val) 当元素 va…

C. Left and Right Houses

Problem - C - Codeforces 题目分析 <1>0&#xff1a;想被分割至左边&#xff1b; 1&#xff1a;想被分割至右边 <2>使得左右两侧均有一半及其以上的人满意&#xff08;我*******&#xff09; <3>答案若有多个&#xff0c;取最接近中间位置的答案 <4…

C# 方法(函数)

文章目录 C# 方法&#xff08;函数&#xff09;简单示例程序代码运行效果 值传递和引用传递示例程序 运行效果按输出传递参数运行结果 C# 方法&#xff08;函数&#xff09; 简单示例 程序代码 访问的限制符 using System; using System.Collections.Generic; using Syste…

R语言:microeco:一个用于微生物群落生态学数据挖掘的R包,第八:trans_func class

# 生态学研究人员通常对微生物群落的功能特征感兴趣&#xff0c;因为功能或代谢数据对于解释微生物群落的结构和动态以及推断其潜在机制是强有力的。 # 由于宏基因组测序复杂且昂贵&#xff0c;利用扩增子测序数据预测功能谱是一个很好的选择。 # 有几个软件经常用于此目标&…

性能优化(CPU优化技术)-NEON指令详解

原文来自ARM SIMD 指令集&#xff1a;NEON 简介 &#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;高性能&#xff08;HPC&#xff09;开发基础教程 &#x1f380;CSDN主页 发狂的小花 &#x1f304;人生秘诀&#xf…

Qt5.9.6+VS2015 部署PCL1.8.1

本文系转载&#xff0c;如侵权请告知删除。原博文链接&#xff1a;https://blog.csdn.net/jepco1/article/details/80752954 0 编译环境 所需软件包及其版本 Qt5.9.6 msvc2015_64 VS2015 VTK 8.0.0 https://gitlab.kitware.com/vtk/vtk/tree/v8.0.0 PCL1.8.1 https://github.c…

蓝桥杯刷题(十二)

1.答疑 代码 n int(input()) L [] for i in range(n):a,b,c map(int,input().split())A ab # 进入和答疑时间B abc # 个人总用时L.append([A,B]) L.sort(keylambda x:x[1]) # 个人总用时短的优先 ans tmp 0 # ans为发消息时刻&#xff0c;tmp为前一个人的总用时 for i …

Linux:Gitlab:16.9.2 创建用户及项目仓库基础操作(2)

我在上一章介绍了基本的搭建以及邮箱配置 Linux&#xff1a;Gitlab:16.9.2 (rpm包) 部署及基础操作&#xff08;1&#xff09;-CSDN博客https://blog.csdn.net/w14768855/article/details/136821311?spm1001.2014.3001.5501 本章介绍一下用户的创建&#xff0c;组内设置用户&…

[AIGC] MySQL与PostgreSQL:两种流行的数据库系统的对比

数据库是存储和查询数据的重要工具。在选择数据库时&#xff0c;两个经常被考虑的选项都是开源的&#xff1a;MySQL和PostgreSQL。这两个数据库都与许多应用程序一起使用&#xff0c;但它们在某些方面存在显著的不同。在本文中&#xff0c;我们将比较MySQL和PostgreSQL的一些关…

长安链团队论文入选国际顶会Usenix Security 2024

零知识证明是区块链扩容和隐私保护的关键前沿技术&#xff0c;其天然具备完备性、可靠性和零知识性的特点&#xff0c;是提升区块链交易吞吐量与可扩展性、在验证用户身份的同时保护用户数据隐私&#xff0c;实现复杂计算不可或缺的关键技术。基于零知识证明技术实现高兼容性、…

ansible Playbook案例 安装nginx

目录 核心元素基本组件举例命令行也 是可以创建文件的编辑nginx.yml 运行前三部曲 核心元素 Playbook的核心元素&#xff1a; Hosts&#xff1a;主机组&#xff1b; Tasks&#xff1a;任务列表&#xff1b; Variables&#xff1a;变量&#xff0c;设置方式有四种&#xff1b;…

代码随想录Day51:最佳买卖股票时机含冷冻期、买卖股票的最佳时机含手续费

最佳买卖股票时机含冷冻期 class Solution { public:/*0&#xff1a;状态一&#xff1a;持有股票状态1&#xff1a;状态二&#xff1a;保持卖出股票的状态2&#xff1a;状态三&#xff1a;今天卖出股票3&#xff1a;状态四&#xff1a;今天为冷冻期状态*/int maxProfit(vector…

驱动开发中的DMA是什么

DMA是一种无须CPU的参与就可以让外设与系统内存之间进行双向数据传输的硬件机制。 使用DMA可以使系统CPU从实际的I/O数据传输过程中摆脱出来&#xff0c; 从而大大提高系统的吞吐率。 DMA通常与硬件体系结构&#xff0c; 特别是外设的总线技术密切相关。 DMA方式的数据传输由DM…

基于华为ensp的企业网络规划(新版)

第一章 项目概述 1.1 项目总体描述 假设某大型公司总部在北京、在重庆设置分部&#xff0c;总部和分部均有研发部、市场部、财务部等部门&#xff0c;现在要求进行网络规划与设计&#xff0c;实现分部和总部能够进行网络连通。为了保证数据安全&#xff0c;在总部和分部之间可…

pytorch单层感知机

目录 1.单层感知机模型2. 推导单层感知机梯度3. 实战 1.单层感知机模型 2. 推导单层感知机梯度 公式前加了一个1/2是为了消除平方2&#xff0c;不加也是可以的&#xff0c;不会改变函数的单调性 3. 实战 初始化1行10列的x和wsigmod中xw.t() w做了转置操作是为了将[1,10]转换…

目标检测——PP-YOLOE算法解读

PP-YOLO系列&#xff0c;均是基于百度自研PaddlePaddle深度学习框架发布的算法&#xff0c;2020年基于YOLOv3改进发布PP-YOLO&#xff0c;2021年发布PP-YOLOv2和移动端检测算法PP-PicoDet&#xff0c;2022年发布PP-YOLOE和PP-YOLOE-R。由于均是一个系列&#xff0c;所以放一起解…