jquery抓取网页内容(聊一聊Python与网络爬虫的主要框架及应用)

优采云 发布时间: 2022-01-23 02:14

  jquery抓取网页内容(聊一聊Python与网络爬虫的主要框架及应用)

  我们来谈谈 Python 和网络爬虫。

  1、爬虫的定义

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

  2、爬虫主要框架

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

  3、爬虫时序图

  4、网址管理器

  网址管理器管理要爬取的URL集合和已经爬取的URL集合,防止重复爬取和循环爬取。 URL管理器的主要功能如下图所示:

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

  5、网页下载器

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

  6、网页解析器

  网页解析器从网页下载器下载的 url 数据中提取有价值的数据和新的 url。对于数据提取,可以使用正则表达式、BeautifulSoup等方法。正则表达式采用基于字符串的模糊匹配,对目标源gao@daima#com有较好的效果,特征比较鲜明(%code@#数据,但通用性不高。BeautifulSoup是第三个—— party模块,用于结构化解析url内容。下载的网页内容被解析成DOM树。下图是BeautifulSoup抓取的百度百科中的一个网页的部分输出。

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

   from bs4 import BeautifulSoup import re import xlrd import xlwt from urllib.request import 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 node in bsObj.find("div",{"class":"main-content"}).findAll("div",{"class":"para"}): links=node.findAll("a",href=re.compile("^(/view/)[0-9]+\.htm$")) for link in 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')

  部分输出截图如下:

  excel部分截图如下:

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

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线