爬虫(二)使用urllib爬取百度贴吧的数据

下一期我就不用urllib来抓取数据了,因为urllib现在已经很少人用,大部分人用得是requests,requests也是基于底层urllib的一个模块。

首先我先来讲一下关于如何使用动态的UA!
动态UA就是指在自己创建的一个列表里随机选择一个UA当做请求浏览器的一个请求头.
我们先自定义一个列表User_Agents,然后将要添加的UA传进去.
UA大全

User_Agents = ['User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36','Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.9.168 Version/11.50','Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3)']

传入进去之后我们使用random模块中的choice去随机选择UA

from random import  choice
headers = {'User-Agent': choice(User_Agents)}

至此一个动态UA就完成了!
接下来给大家献上爬取百度贴吧的代码
思路:我们知道要爬取有页数的url就要找出其中的规律
我们根据百度贴吧每页翻页的url可以得出基础的url是base_html='https://tieba.baidu.com/f?ie=utf-8&{}

from urllib.request import urlopen,Request
from random import  choice
from urllib.parse import quote,urlencode#定义一个得到url数据的函数
def get_html(url):User_Agents = ['User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36','Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.9.168 Version/11.50','Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3)']headers = {'User-Agent': choice(User_Agents)}#伪装浏览器response = Request(url=url, headers=headers)#获取响应html = urlopen(response)#把读的到数据返回return html.read()#定义一个保存数据文件的函数
def save_html(file_name,html_bytes):with open(file_name,'wb') as rfile:rfile.write(html_bytes)rfile.close()
#定义一个主函数
def main():concent = input('请输入要下载的内容:')num=input('请输入要下载的页数:')base_html='https://tieba.baidu.com/f?ie=utf-8&{}'for pn in range(int(num)):arg={'pn':pn*50,'kw':concent}file_name='第'+str(pn+1)+'页'#将arg转码arg = urlencode(arg)print(f'正在下载{concent}的'+file_name)#base_html='https://tieba.baidu.com/f?ie=utf-8&{pn*50}html=base_html.format(arg)#得到网页里的数据html_bytes=get_html(html)save_html(file_name,html_bytes)#让程序跑起来
if __name__ == '__main__':main()print('下载完成')

这是爬取内容个每页的源代码,要获取相应的图片和内容还需要去解析提取。

看完的点个赞吧,喜欢的可以点点关注哦!
在这里插入图片描述

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

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

相关文章

Java开发工具 IntelliJ IDEA 2023中文

IntelliJ IDEA 2023是一款强大的集成开发环境(IDE),适用于多种编程语言,包括Java、Python、Kotlin等。它提供了许多特色功能,以提高开发效率和代码质量。 Java开发工具 IntelliJ IDEA 2023中文 以下是一些IntelliJ ID…

大数据分析|设计大数据分析的三个阶段

文献来源:Saggi M K, Jain S. A survey towards an integration of big data analytics to big insights for value-creation[J]. Information Processing & Management, 2018, 54(5): 758-790. 下载链接:链接:https://pan.baidu.com/s/1…

扫盲软件开发工具低代码

目录 一、低代码是什么? 二、低代码平台的优势和劣势都是什么? 三、低代码操作方式 四、写在最后 一、低代码是什么? 低代码是一套可视化开发工具,它帮开发者把前后端基础功能写扎实,开发者只需要通过填表配置或拖…

C#——三角形面积公式

已知三角形的三个边&#xff0c;求面积&#xff0c;可以使用海伦公式。 因此&#xff0c;可以执行得到三角形面积公式的计算方法代码如下&#xff1a; /** / <summary>* / 三角形面积公式* / </summary>* / <param name"a">边长a</param>*…

OfficeWeb365 Readfile 任意文件读取漏洞复现

0x01 产品简介 OfficeWeb365 是专注于 Office 文档在线预览及PDF文档在线预览云服务,包括 Microsoft Word 文档在线预览、Excel 表格在线预览、Powerpoint 演示文档在线预览,WPS 文字处理、WPS 表格、WPS 演示及 Adobe PDF 文档在线预览。 0x02 漏洞概述 OfficeWeb365 Rea…

前端常见标签

<li> (List Item)&#xff1a;定义列表中的一个项目&#xff08;项&#xff09; <ul> (Unordered List)&#xff1a;定义无序列表 <ol> (Ordered List)&#xff1a;定义有序列表 <a> (Anchor Tag)&#xff1a;定义超链接 <ul><li>苹…

何以穿越产业周期?解读蓝思科技2023年增长密码

1月30日晚&#xff0c;蓝思科技发布了2023年业绩预告&#xff0c;2023年预计实现归母净利润29.38亿元-30.60亿元&#xff0c;同比增长20%-25%。 松果财经注意到&#xff0c;蓝思科技通过垂直整合&#xff0c;构筑了更具竞争力的产业链条。一方面&#xff0c;公司打造了包含ODM…

蓝桥杯---煤球数目

有一堆煤球,堆成三角棱锥形。具体: 第一层放1个, 第二层3个(排列成三角形), 第三层6个(排列成三角形), 第四层10个(排列成三角形), 如果一共有100层,共有多少个煤球? 请填表示煤球总数目的数字. 注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字. 代码 pu…

Web3生态系统:构建去中心化的数字社会

随着科技的飞速发展&#xff0c;我们正处在迈向数字未来的道路上&#xff0c;而Web3生态系统则成为这一变革的中心。不仅仅是技术的演进&#xff0c;Web3代表着对传统互联网体系的颠覆&#xff0c;致力于构建一个去中心化的数字社会。本文将深入探讨Web3的核心特征、对金融、社…

3dmatch-toolbox详细安装教程-Ubuntu14.04

3dmatch-toolbox详细安装教程-Ubuntu14.04 前言docker搭建Ubuntu14.04安装第三方库安装cuda/cundnn安装OpenCV安装Matlab 安装以及运行3dmatch-toolbox1.安装测试3dmatch-toolbox(对齐两个点云) 总结 前言 paper:3DMatch: Learning Local Geometric Descriptors from RGB-D Re…

MySQL进阶——存储引擎

MySQL体系结构如下图所示&#xff1a; 包含连接层、服务层、引擎层、存储层&#xff0c;下面将对这四层架构进行介绍 1、连接层 连接层主要完成类似于连接处理、授权认证及相关的安全方案&#xff08;校验密码&#xff09;&#xff0c;服务器也会为安全接入的每个用户端验证他…

(十一)springboot实战——springboot3下关于WebFlux项目的一些常用功能整合

前言 本节内容主要是对webflux项目一些常用功能的介绍&#xff0c;例如系统集成swagger接口文档&#xff0c;方便接口测试以及前后端项目联调测试&#xff1b;使用actuator完成系统各种指标的监控功能&#xff1b;系统使用logback日志框架完成项目日志的收集&#xff1b;使用过…

CSS 外边距合并、塌陷和BFC

外边距合并 CSS中的外边距合并指的是当两个相邻元素都设置了上下外边距时&#xff0c;它们之间会发生重叠。这种现象被称为"margin collapsing"&#xff08;外边距合并&#xff09;或者"margin collapse"&#xff08;外边距塌陷&#xff09;。 可以看出上…

LeetCode--171

171. Excel 表列序号 给你一个字符串 columnTitle &#xff0c;表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。 例如&#xff1a; A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ... 示例 1: 输入: columnTitle "A" 输出:…

vue3-逻辑复用

什么是组合式函数 _无状态逻辑的函数_&#xff1a;它在接收一些输入后立刻返回所期望的输出。 比如 时间格式化的函数。 有状态逻辑的函数: 有状态逻辑负责管理会随时间而变化的状态。 比如 跟踪当前鼠标在页面中的位置。 在 Vue 应用的概念中&#xff0c;“组合式函数”(…

前端换肤的五种思路和优缺点

一、什么是前端换肤 前端换肤是指在前端开发中&#xff0c;通过改变网页的样式来实现不同的主题或皮肤效果。通过换肤&#xff0c;可以改变网页的颜色、字体、背景等样式&#xff0c;以适应不同的用户喜好或实现特定的设计需求。 静态换肤&#xff1a; 是指在网页加载时&…

python-自动化篇-运维-可视化-绘图库-matplotlib

文章目录 Matplotlibmatplotlib开发环境搭建绘制基础绘制直线绘制折线设置标签文字和线条粗细绘制一元二次方程的曲线yx^2绘制正弦曲线和余弦曲线散点图绘制柱状图绘制饼状图绘制直方图等高线图绘制三维图 Matplotlib Matplotlib 是一个Python的 2D绘图库。通过 Matplotlib&am…

leetcode 19 , 118

19 .删除链表倒数第n个节点 思路1&#xff1a; 我首先想到的就是使用两个loop来进行解决&#xff1a; 遍历所有节点&#xff0c;得到需要删除节点的位置。再遍历一边所有节点&#xff0c;找到需要删除节点进行删除。 解决方案1&#xff1a; class Solution {public ListNod…

代码随想录算法训练营第二十四天|● 理论基础 ● 77. 组合

仅做学习笔记&#xff0c;详细请访问代码随想录 ● 理论基础 ● 77. 组合 ● 理论基础 回溯法解决的问题 回溯法&#xff0c;一般可以解决如下几种问题&#xff1a; 组合问题&#xff1a;N个数里面按一定规则找出k个数的集合 切割问题&#xff1a;一个字符串按一定规则有几…

新增模型检验,指标自动评估模型效果|ModelWhale 版本更新

二月将至&#xff0c;ModelWhale 迎来开年首次版本更新&#xff0c;期待为大家带来更优质的使用体验。 本次更新中&#xff0c;ModelWhale 主要进行了以下功能迭代&#xff1a; 新增 模型检验&#xff08;团队版✓&#xff09;优化 模型评审测试&#xff08;团队版✓&#xf…