千家信息网

怎么使用python爬虫爬取数据

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,本篇内容介绍了"怎么使用python爬虫爬取数据"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!pyt
千家信息网最后更新 2026年11月04日怎么使用python爬虫爬取数据

本篇内容介绍了"怎么使用python爬虫爬取数据"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

python爬出六部曲

第一步:安装requests库和BeautifulSoup库:

在程序中两个库的书写是这样的:

import requestsfrom bs4 import BeautifulSoup

由于我使用的是pycharm进行的python编程。所以我就讲讲在pycharm上安装这两个库的方法。在主页面文件选项下,找到设置。进一步找到项目解释器。之后在所选框中,点击软件包上的+号就可以进行查询插件安装了。有过编译器插件安装的hxd估计会比较好入手。具体情况就如下图所示。

第二步:获取爬虫所需的header和cookie:

我写了一个爬取微博热搜的爬虫程序,这里就直接以它为例吧。获取header和cookie是一个爬虫程序必须的,它直接决定了爬虫程序能不能准确的找到网页位置进行爬取。

首先进入微博热搜的页面,按下F12,就会出现网页的js语言设计部分。如下图所示。找到网页上的Network部分。然后按下ctrl+R刷新页面。如果,进行就有文件信息,就不用刷新了,当然刷新了也没啥问题。然后,我们浏览Name这部分,找到我们想要爬取的文件,鼠标右键,选择copy,复制下网页的URL。就如下图所示。

复制好URL后,我们就进入一个网页Convert curl commands to code。这个网页可以根据你复制的URL,自动生成header和cookie,如下图。生成的header和cookie,直接复制走就行,粘贴到程序中。

#爬虫头数据cookies = {    'SINAGLOBAL': '6797875236621.702.1603159218040',    'SUB': '_2AkMXbqMSf8NxqwJRmfkTzmnhboh2ygvEieKhMlLJJRMxHRl-yT9jqmg8tRB6PO6N_Rc_2FhPeZF2iThYO9DfkLUGpv4V',    'SUBP': '0033WrSXqPxfM72-Ws9jqgMF55529P9D9Wh-nU-QNDs1Fu27p6nmwwiJ',    '_s_tentry': 'www.baidu.com',    'UOR': 'www.hfut.edu.cn,widget.weibo.com,www.baidu.com',    'Apache': '7782025452543.054.1635925669528',    'ULV': '1635925669554:15:1:1:7782025452543.054.1635925669528:1627316870256',}headers = {    'Connection': 'keep-alive',    'Cache-Control': 'max-age=0',    'Upgrade-Insecure-Requests': '1',    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 SLBrowser/7.0.0.6241 SLBChan/25',    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',    'Sec-Fetch-Site': 'cross-site',    'Sec-Fetch-Mode': 'navigate',    'Sec-Fetch-User': '?1',    'Sec-Fetch-Dest': 'document',    'Accept-Language': 'zh-CN,zh;q=0.9',}params = (    ('cate', 'realtimehot'),)

复制到程序中就像这样。这是微博热搜的请求头。

第三步:获取网页:

我们将header和cookie搞到手后,就可以将它复制到我们的程序里。之后,使用request请求,就可以获取到网页了。

#获取网页response = requests.get('https://s.weibo.com/top/summary', headers=headers, params=params, cookies=cookies)

第四步:解析网页:

这个时候,我们需要回到网页。同样按下F12,找到网页的Elements部分。用左上角的小框带箭头的标志,如下图,点击网页内容,这个时候网页就会自动在右边显示出你获取网页部分对应的代码。

如上图所示,我们在找到想要爬取的页面部分的网页代码后,将鼠标放置于代码上,右键,copy到selector部分。就如上图所示。

第五步:分析得到的信息,简化地址:

其实刚才复制的selector就相当于网页上对应部分存放的地址。由于我们需要的是网页上的一类信息,所以我们需要对获取的地址进行分析,提取。当然,就用那个地址也不是不行,就是只能获取到你选择的网页上的那部分内容。

#pl_top_realtimehot > table > tbody > tr:nth-child(1) > td.td-02 > a#pl_top_realtimehot > table > tbody > tr:nth-child(2) > td.td-02 > a#pl_top_realtimehot > table > tbody > tr:nth-child(9) > td.td-02 > a

这是我获取的三条地址,可以发现三个地址有很多相同的地方,唯一不同的地方就是tr部分。由于tr是网页标签,后面的部分就是其补充的部分,也就是子类选择器。可以推断出,该类信息,就是存储在tr的子类中,我们直接对tr进行信息提取,就可以获取到该部分对应的所有信息。所以提炼后的地址为:

#pl_top_realtimehot > table > tbody > tr > td.td-02 > a

这个过程对js类语言有一定了解的hxd估计会更好处理。不过没有js类语言基础也没关系,主要步骤就是,保留相同的部分就行,慢慢的试,总会对的。

第六步:爬取内容,清洗数据

这一步完成后,我们就可以直接爬取数据了。用一个标签存储上面提炼出的像地址一样的东西。标签就会拉取到我们想获得的网页内容。

#爬取内容content="#pl_top_realtimehot > table > tbody > tr > td.td-02 > a"

之后我们就要soup和text过滤掉不必要的信息,比如js类语言,排除这类语言对于信息受众阅读的干扰。这样我们就成功的将信息,爬取下来了。

fo = open("./微博热搜.txt",'a',encoding="utf-8")a=soup.select(content)for i in range(0,len(a)):    a[i] = a[i].text    fo.write(a[i]+'\n')fo.close()

我是将数据存储到了文件夹中,所以会有wirte带来的写的操作。想把数据保存在哪里,或者想怎么用,就看读者自己了。

爬取微博热搜的代码实例以及结果展示:

import osimport requestsfrom bs4 import BeautifulSoup#爬虫头数据cookies = {    'SINAGLOBAL': '6797875236621.702.1603159218040',    'SUB': '_2AkMXbqMSf8NxqwJRmfkTzmnhboh2ygvEieKhMlLJJRMxHRl-yT9jqmg8tRB6PO6N_Rc_2FhPeZF2iThYO9DfkLUGpv4V',    'SUBP': '0033WrSXqPxfM72-Ws9jqgMF55529P9D9Wh-nU-QNDs1Fu27p6nmwwiJ',    '_s_tentry': 'www.baidu.com',    'UOR': 'www.hfut.edu.cn,widget.weibo.com,www.baidu.com',    'Apache': '7782025452543.054.1635925669528',    'ULV': '1635925669554:15:1:1:7782025452543.054.1635925669528:1627316870256',}headers = {    'Connection': 'keep-alive',    'Cache-Control': 'max-age=0',    'Upgrade-Insecure-Requests': '1',    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 SLBrowser/7.0.0.6241 SLBChan/25',    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',    'Sec-Fetch-Site': 'cross-site',    'Sec-Fetch-Mode': 'navigate',    'Sec-Fetch-User': '?1',    'Sec-Fetch-Dest': 'document',    'Accept-Language': 'zh-CN,zh;q=0.9',}params = (    ('cate', 'realtimehot'),)#数据存储fo = open("./微博热搜.txt",'a',encoding="utf-8")#获取网页response = requests.get('https://s.weibo.com/top/summary', headers=headers, params=params, cookies=cookies)#解析网页response.encoding='utf-8'soup = BeautifulSoup(response.text, 'html.parser')#爬取内容content="#pl_top_realtimehot > table > tbody > tr > td.td-02 > a"#清洗数据a=soup.select(content)for i in range(0,len(a)):    a[i] = a[i].text    fo.write(a[i]+'\n')fo.close()

"怎么使用python爬虫爬取数据"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

网页 部分 数据 信息 爬虫 内容 地址 程序 就是 语言 代码 文件 存储 标签 页面 选择 相同 上图 两个 地方 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州淘业互联网络科技 互联网电商科技 金融科技创新监管互联网金融 金融科技与互联网金融 掌上梦互联网科技 互联网科技的未来发展 多迪互联网科技有限公司 哈尔滨秒房互联网科技有限公司 华中科技有哪些互联网大佬 互联网科技热点资讯 互联网科技实习生岗位职责 杭州壁岐互联网科技有限公司 如何创新互联网科技 广州千川互联网科技有限公司 黑云互联网科技有限公司 风投北京互联网科技 互联网科技对化妆品行业 互联网金融金融科技 知域互联网科技有限公司官网 互联网科技快速发展优美句子 科技互联网产品 科技金融是不是互联网金融 互联网科技中介 北京华百购互联网科技有限公司 科技与互联网哪个更好 世界互联网领先科技成果获奖 华中科技大学互联网的牛人 滨湖区互联网智能科技产品有哪些 杭州披云加互联网科技有限公司 互联网金融运营模式中的金融科技
0