python网络爬虫实验报告_Python网络爬虫实例讲解

聊一聊Python与网络爬虫。

1、爬虫的定义

爬虫:自动抓取互联网数据的程序。

2、爬虫的主要框架

10333a337-0.jpg

爬虫程序的主要框架如上图所示,爬虫调度端通过URL管理器获取待爬取的URL链接,若URL管理器中存在待爬取的URL链接,爬虫调度器调用网页下载器下载相应网页,然后调用网页解析器解析该网页,并将该网页中新的URL添加到URL管理器中,将有价值的数据输出。

3、爬虫的时序图

1033394532-1.jpg

4、URL管理器

URL管理器管理待抓取的URL集合和已抓取的URL集合,防止重复抓取与循环抓取。URL管理器的主要职能如下图所示:

1033393413-2.jpg

URL管理器在实现方式上,Python中主要采用内存(set)、和关系数据库(MySQL)。对于小型程序,一般在内存中实现,Python内置的set()类型能够自动判断元素是否重复。对于大一点的程序,一般使用数据库来实现。

5、网页下载器

Python中的网页下载器主要使用urllib库,这是python自带的模块。对于2.x版本中的urllib2库,在python3.x中集成到urllib中,在其request等子模块中。urllib中的urlopen函数用于打开url,并获取url数据。urlopen函数的参数可以是url链接,也可以使request对象,对于简单的网页,直接使用url字符串做参数就已足够,但对于复杂的网页,设有防爬虫机制的网页,再使用urlopen函数时,需要添加http header。对于带有登录机制的网页,需要设置cookie。

6、网页解析器

网页解析器从网页下载器下载到的url数据中提取有价值的数据和新的url。对于数据的提取,可以使用正则表达式和BeautifulSoup等方法。正则表达式使用基于字符串的模糊匹配,对于特点比较鲜明的目标数据具有较好的作用,但通用性不高。BeautifulSoup是第三方模块,用于结构化解析url内容。将下载到的网页内容解析为DOM树,下图为使用BeautifulSoup打印抓取到的百度百科中某网页的输出的一部分。

1033393623-3.jpg

关于BeautifulSoup的具体使用,在以后的文章中再写。下面的代码使用python抓取百度百科中英雄联盟词条中的其他与英雄联盟相关的词条,并将这些词条保存在新建的excel中。上代码:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

from bs4import BeautifulSoup

import re

import xlrd

import xlwt

from urllib.requestimport urlopen

excelFile=xlwt.Workbook()

sheet=excelFile.add_sheet('league of legend')

## 百度百科:英雄联盟##

html=urlopen("http://baike.baidu.com/subview/3049782/11262116.htm")

bsObj=BeautifulSoup(html.read(),"html.parser")

#print(bsObj.prettify())

row=0

for nodein bsObj.find("div",{"class":"main-content"}).findAll("div",{"class":"para"}):

links=node.findAll("a",href=re.compile("^(/view/)[0-9]+\.htm$"))

for linkin links:

if 'href' in link.attrs:

print(link.attrs['href'],link.get_text())

sheet.write(row,0,link.attrs['href'])

sheet.write(row,1,link.get_text())

row=row+1

excelFile.save('E:\Project\Python\lol.xls')

输出的部分截图如下:

1033391336-4.jpg

excel部分的截图如下:

10333a403-5.jpg

以上就是本文的全部内容,希望对大家学习Python网络爬虫有所帮助。

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,我无法直接回答关于Python爬虫实验的感悟。但是,我可以为您提供一些关于Python爬虫实验的一般信息和建议。 Python爬虫是一种用于从网页上获取数据的技术。通过编写Python脚本,可以自动化地访问网页、提取数据并进行处理和分析。以下是一些关于Python爬虫实验的感悟和建议: 1. 学习基础知识:在进行Python爬虫实验之前,建议先学习Python编程语言的基础知识,包括语法、数据类型、控制流等。此外,了解HTML、CSS和JavaScript等前端技术也会对爬虫实验有所帮助。 2. 选择合适的库:Python有许多用于爬虫的库,如BeautifulSoup、Scrapy和Requests等。根据实验需求选择合适的库进行学习和使用。 3. 网络请求和数据提取:在爬虫实验中,首先需要发送网络请求获取网页内容,然后使用合适的方法提取所需的数据。了解HTTP协议和常见的数据提取技术(如正则表达式和XPath)对实验非常有帮助。 4. 处理和存储数据:获取到的数据可能需要进行处理和清洗,以便后续分析。Python提供了许多数据处理和分析的库,如Pandas和NumPy。此外,您还可以将数据存储到数据库或文件中,以便后续使用。 5. 遵守法律和道德规范:在进行爬虫实验时,务必遵守相关的法律和道德规范。尊重网站的使用条款和隐私政策,避免对网站造成过大的负担或侵犯他人的权益。 希望以上信息对您有所帮助!如果您有任何进一步的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值