千家信息网

怎么使用Python爬虫抓取数据

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,这篇文章给大家分享的是有关怎么使用Python爬虫抓取数据的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。工具安装首先需要安装Python的requests和Beautifu
千家信息网最后更新 2025年02月03日怎么使用Python爬虫抓取数据

这篇文章给大家分享的是有关怎么使用Python爬虫抓取数据的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

工具安装

首先需要安装Python的requests和BeautifulSoup库。我们用Requests库用抓取网页的内容,使用BeautifulSoup库来从网页中提取数据。

安装python

运行pip install requests

运行pip install BeautifulSoup

抓取网页

完成必要工具安装后,我们正式开始编写我们的爬虫。我们的第一个任务是要抓取所有豆瓣上的图书信息。我们以https://book.douban.com/subject/26986954/为例,首先看看开如何抓取网页的内容。

提取内容

抓取到网页的内容后,我们要做的就是提取出我们想要的内容。在我们的第一个例子中,我们只需要提取书名。首先我们导入BeautifulSoup库,使用BeautifulSoup我们可以非常简单的提取网页的特定内容。

连续抓取网页

到目前为止,我们已经可以抓取单个网页的内容了,现在让我们看看如何抓取整个网站的内容。我们知道网页之间是通过超链接互相连接在一起的,通过链接我们可以访问整个网络。所以我们可以从每个页面提取出包含指向其它网页的链接,然后重复的对新链接进行抓取。

准备

IDE:pyCharm

库:requests、lxm

大概介绍一下,这俩库主要为我们做什么服务的

requests:获取网页源代码

lxml:得到网页源代码中的指定数据

言简意赅有没有 ^_^

搭建环境

这里的搭建环境,可不是搭建python的开发环境,这里的搭建环境是指,我们使用pycharm新建一个python项目,然后弄好requests和lxml 新建一个项目,光溜溜的啥也没有,新建个src文件夹再在里面直接新建一个Test.py吧 。

依赖库导入

在Test.py中输入:

import requests

这个时候,requests会报红线,这时候,我们将光标对准requests,按快捷键:alt + enter,pycharm会给出解决之道,这时候,选择install package requests,pycharm就会自动为我们安装了,我们只需要稍等片刻,这个库就安装好了。lxml的安装方式同理.

将这两个库安装完毕后,编译器就不会报红线了。

取网页源代码

requests可以很方便的让我们得到网页的源代码。

获取源码:

# 获取源码

html = requests.get("https://blog.csdn.net/it_xf?viewmode=contents")

# 打印源码

print html.text

代码就是这么简单,这个html.text便是这个URL的源码

获取指定数据

现在我们已经得到网页源码了,这时就需要用到lxml来来筛选出我们所需要的信息

首先我们需要分析一下源码,我这里使用的是chrome浏览器,所以右键检查。

然后在源代码中,定位找到第一篇 。

首先点击源码页右上角的箭头,然后在网页内容中选中文章标题,这个时候,源码会定位到标题这里,

这时候选中源码的标题元素,右键复制。

得到xpath,它相当于地址。比如网页某长图片在源码中的位置。

表达式://*[@id="mainBox"]/main/div[2]/div[1]/h5/a

首先,//表示根节点,也就是说啊,这//后面的东西为根,则说明只有一个啊。我们需要的东西,在这里面。

然后/表示往下层寻找,根据图片,也显而易见,div -> main -> div[2] -> div[1] -> h5 -> a

追踪到a这里,然后我们在后面加个/text,表示要把元素的内容提取出来,所以我们最终的表达式长这样:

//*[@id="mainBox"]/main/div[2]/div[1]/h5/a/text()

这个表达式只针对这个网页的这个元素,不难理解吧?

那么这个东西怎么用呢?

所有代码:

import requests

from lxml import etree

html = requests.get("https://blog.csdn.net/it_xf?viewmode=contents")

# print html.text

etree_html = etree.HTML(html.text)

content = etree_html.xpath('//*[@id="mainBox"]/main/div[2]/div[1]/h5/a/text()')

for each in content:

print(each)

这时候,each里面的数据就是我们想要得到的数据了

打印结果:

如何撸一个ArrayList

打印结果却是这个结果,我们把换行和空格去掉

import requests

from lxml import etree

html = requests.get("https://blog.csdn.net/it_xf?viewmode=contents")

# print html.text

etree_html = etree.HTML(html.text)

content = etree_html.xpath('//*[@id="mainBox"]/main/div[2]/div[1]/h5/a/text()')

for each in content:

replace = each.replace('\n', '').replace(' ', '')

if replace == '\n' or replace == '':

continue

else:

print(replace)

打印结果:

如何撸一个ArrayList

感谢各位的阅读!关于"怎么使用Python爬虫抓取数据"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

网页 内容 源码 数据 源代码 环境 结果 链接 爬虫 东西 元素 就是 标题 表达式 代码 信息 图片 工具 文章 时候 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 罗斯港是什么服务器 云数据库支持扩容内存吗 数据库获取数值后与其他数值对比 南安市武荣网络技术有限公司 浙江软件开发有用吗 软件开发为虚拟币开发 福建农信服务器连接云主机 非法利用网络安全罪判多少年 永清租房网络安全 网络安全知识教育活动口号 我的世界服务器管理员招人 秀山县网络技术培训 服务器不用浏览器打开 房山旧服务器回收估价 未成年人网络安全报告 饥荒联机版开服务器需要什么配置 鄂州软件开发怎么样 北京交易软件开发团队 oracle 数据库概念 河北网络技术咨询什么价格 创成利网络技术有限公司怎么样 大话西游2017年开服的服务器 查询excle的数据库 极路由 搭建 服务器 网络技术培训公司的策划书 网络技术有限公司组织百科 网络安全的维护不仅 近期网络安全意识 平谷数据库安全审计系统 手机软件开发师网络培训费用
0