如何利用Python爬虫从网页上批量获取想要的信息

如何利用Python爬虫从网页上批量获取想要的信息,第1张

python是一款应用非常广泛的脚本程序语言,谷歌公司的网页就是用python编写。python在生物信息、统计、网页制作、计算等多个领域都体现出了强大的功能。python和其他脚本语言如java、R、Perl 一样,都可以直接在命令行里运行脚本程序。工具/原料

python;CMD命令行;windows *** 作系统

方法/步骤

1、首先下载安装python,建议安装27版本以上,30版本以下,由于30版本以上不向下兼容,体验较差。

2、打开文本编辑器,推荐editplus,notepad等,将文件保存成 py格式,editplus和notepad支持识别python语法。

脚本第一行一定要写上 #!usr/bin/python

表示该脚本文件是可执行python脚本

如果python目录不在usr/bin目录下,则替换成当前python执行程序的目录。

3、编写完脚本之后注意调试、可以直接用editplus调试。调试方法可自行百度。脚本写完之后,打开CMD命令行,前提是python 已经被加入到环境变量中,如果没有加入到环境变量,请百度

4、在CMD命令行中,输入 “python” + “空格”,即 ”python “;将已经写好的脚本文件拖拽到当前光标位置,然后敲回车运行即可。

这里以python为例,简单介绍一下如何通过python网络爬虫获取网站数据,主要分为静态网页数据的爬取和动态网页数据的爬取,实验环境win10+python36+pycharm50,主要内容如下:

静态网页数据

这里的数据都嵌套在网页源码中,所以直接requests网页源码进行解析就行,下面我简单介绍一下,这里以爬取糗事百科上的数据为例:

1首先,打开原网页,如下,这里假设要爬取的字段包括昵称、内容、好笑数和评论数:

接着查看网页源码,如下,可以看的出来,所有的数据都嵌套在网页中:

2然后针对以上网页结构,我们就可以直接编写爬虫代码,解析网页并提取出我们需要的数据了,测试代码如下,非常简单,主要用到requests+BeautifulSoup组合,其中requests用于获取网页源码,BeautifulSoup用于解析网页提取数据:

点击运行这个程序,效果如下,已经成功爬取了到我们需要的数据:

动态网页数据

这里的数据都没有在网页源码中(所以直接请求页面是获取不到任何数据的),大部分情况下都是存储在一个json文件中,只有在网页更新的时候,才会加载数据,下面我简单介绍一下这种方式,这里以爬取人人贷上面的数据为例:

1首先,打开原网页,如下,这里假设要爬取的数据包括年利率,借款标题,期限,金额和进度:

接着按F12调出开发者工具,依次点击“Network”->“XHR”,F5刷新页面,就可以找打动态加载的json文件,如下,也就是我们需要爬取的数据:

2然后就是根据这个json文件编写对应代码解析出我们需要的字段信息,测试代码如下,也非常简单,主要用到requests+json组合,其中requests用于请求json文件,json用于解析json文件提取数据:

点击运行这个程序,效果如下,已经成功爬取到我们需要的数据:

至此,我们就完成了利用python网络爬虫来获取网站数据。总的来说,整个过程非常简单,python内置了许多网络爬虫包和框架(scrapy等),可以快速获取网站数据,非常适合初学者学习和掌握,只要你有一定的爬虫基础,熟悉一下上面的流程和代码,很快就能掌握的,当然,你也可以使用现成的爬虫软件,像八爪鱼、后羿等也都可以,网上也有相关教程和资料,非常丰富,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。

大到各类搜索引擎,小到日常数据采集,都离不开网络爬虫。爬虫的基本原理很简单,遍历网络中网页,抓取感兴趣的数据内容。这篇文章会从零开始介绍如何编写一个网络爬虫抓取数据,然后会一步步逐渐完善爬虫的抓取功能。

工具安装

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

安装python

运行pipinstallrequests

运行pipinstallBeautifulSoup

抓取网页

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

使用python的requests提供的get()方法我们可以非常简单的获取的指定网页的内容,代码如下:

提取内容

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

连续抓取网页

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

通过以上几步我们就可以写出一个最原始的爬虫。在理解了爬虫原理的基础上,我们可以进一步对爬虫进行完善。

写过一个系列关于爬虫的文章:/i6567289381185389064/。感兴趣的可以前往查看。

Python基本环境的搭建,爬虫的基本原理以及爬虫的原型

Python爬虫入门(第1部分)

如何使用BeautifulSoup对网页内容进行提取

Python爬虫入门(第2部分)

爬虫运行时数据的存储数据,以SQLite和MySQL作为示例

Python爬虫入门(第3部分)

使用seleniumwebdriver对动态网页进行抓取

Python爬虫入门(第4部分)

讨论了如何处理网站的反爬虫策略

Python爬虫入门(第5部分)

对Python的Scrapy爬虫框架做了介绍,并简单的演示了如何在Scrapy下进行开发

Python爬虫入门(第6部分)

最近王和李的离婚闹得沸沸扬扬,相信大伙们都已经吃了不少的瓜。本文结合李的第一篇文章发文下面的网友们的评论来看看大家到底怎么看待这件事。

数据来自该地址: >

这里简单介绍一下吧,以抓取网站静态、动态2种数据为例,实验环境win10+python36+pycharm50,主要内容如下:

抓取网站静态数据(数据在网页源码中):以糗事百科网站数据为例

1这里假设我们抓取的数据如下,主要包括用户昵称、内容、好笑数和评论数这4个字段,如下:

对应的网页源码如下,包含我们所需要的数据:

2对应网页结构,主要代码如下,很简单,主要用到requests+BeautifulSoup,其中requests用于请求页面,BeautifulSoup用于解析页面:

程序运行截图如下,已经成功爬取到数据:

抓取网站动态数据(数据不在网页源码中,json等文件中):以人人贷网站数据为例

1这里假设我们爬取的是债券数据,主要包括年利率、借款标题、期限、金额和进度这5个字段信息,截图如下:

打开网页源码中,可以发现数据不在网页源码中,按F12抓包分析时,才发现在一个json文件中,如下:

2获取到json文件的url后,我们就可以爬取对应数据了,这里使用的包与上面类似,因为是json文件,所以还用了json这个包(解析json),主要内容如下:

程序运行截图如下,已经成功抓取到数据:

至此,这里就介绍完了这2种数据的抓取,包括静态数据和动态数据。总的来说,这2个示例不难,都是入门级别的爬虫,网页结构也比较简单,最重要的还是要会进行抓包分析,对页面进行分析提取,后期熟悉后,可以借助scrapy这个框架进行数据的爬取,可以更方便一些,效率更高,当然,如果爬取的页面比较复杂,像验证码、加密等,这时候就需要认真分析了,网上也有一些教程可供参考,感兴趣的可以搜一下,希望以上分享的内容能对你有所帮助吧。

这个和用不用python没啥关系,是数据来源的问题。

调用淘宝API,使用 api相关接口获得你想要的内容,我 记得api中有相关的接口,你可以看一下接口的说明。

用python做爬虫来进行页面数据的获取。

搜索

希望能帮到你。

python爬虫项目实战:

爬取糗事百科用户的所有信息,包括用户名、性别、年龄、内容等等。

10个步骤实现项目功能,下面开始实例讲解:

1导入模块

import re

import urllibrequest

from bs4 import BeautifulSoup

2添加头文件,防止爬取过程被拒绝链接

def qiuShi(url,page):

################### 模拟成高仿度浏览器的行为 ##############

heads ={

'Connection':'keep-alive',

'Accept-Language':'zh-CN,zh;q=09',

'Accept':'text/html,application/xhtml+xml,application/xml;

q=09,image/webp,image/apng, / ;q=08',

'User-Agent':'Mozilla/50 (Windows NT 100; WOW64) AppleWebKit/53736

(KHTML, like Gecko) Chrome/6303239132 Safari/53736',

}

headall = []

for key,value in headsitems():

items = (key,value)

headallappend(items)

opener = urllibrequestbuild_opener()

openeraddheaders = headall

urllibrequestinstall_opener(opener)

data = openeropen(url)read()decode()

################## end ########################################

3创建soup解析器对象

soup = BeautifulSoup(data,'lxml')

x = 0

4开始使用BeautifulSoup4解析器提取用户名信息

############### 获取用户名 ########################

name = []

unames = soupfind_all('h2')

for uname in unames:

nameappend(unameget_text())

#################end#############################

5提取发表的内容信息

############## 发表的内容 #########################

cont = []

data4 = soupfind_all('div',class_='content')

data4 = str(data4)

soup3 = BeautifulSoup(data4,'lxml')

contents = soup3find_all('span')

for content in contents:

contappend(contentget_text())

##############end####################################

6提取搞笑指数

#################搞笑指数##########################

happy = []

data2 = soupfind_all('span',class_="stats-vote")

data2 = str(data2) # 将列表转换成字符串形式才可以使用

soup1 = BeautifulSoup(data2,'lxml')

happynumbers = soup1find_all('i',class_="number")

for happynumber in happynumbers:

happyappend(happynumberget_text())

##################end#############################

7提取评论数

############## 评论数 ############################

comm = []

data3 = soupfind_all('a',class_='qiushi_comments')

data3 = str(data3)

soup2 = BeautifulSoup(data3,'lxml')

comments = soup2find_all('i',class_="number")

for comment in comments:

commappend(commentget_text())

############end#####################################

8使用正则表达式提取性别和年龄

######## 获取性别和年龄 ##########################

pattern1 = '<div class="articleGender (w )Icon">(d )</div>'

sexages = recompile(pattern1)findall(data)

9设置用户所有信息输出的格局设置

################## 批量输出用户的所以个人信息 #################

print()

for sexage in sexages:

sa = sexage

print(' ' 17, '= = 第', page, '页-第', str(x+1) + '个用户 = = ',' ' 17)

print('用户名:',name[x],end='')

print('性别:',sa[0],' 年龄:',sa[1])

print('内容:',cont[x])

print('搞笑指数:',happy[x],' 评论数:',comm[x])

print(' ' 25,' 三八分割线 ',' ' 25)

x += 1

###################end##########################

10设置循环遍历爬取13页的用户信息

for i in range(1,14):

url = ' >

以上就是关于如何利用Python爬虫从网页上批量获取想要的信息全部的内容,包括:如何利用Python爬虫从网页上批量获取想要的信息、如何通过网络爬虫获取网站数据、python爬虫怎么做等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9830961.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存