爬虫抓取网页数据(简单粗暴的简单爬虫套件-上海怡健医学())

优采云 发布时间: 2022-01-13 00:02

  爬虫抓取网页数据(简单粗暴的简单爬虫套件-上海怡健医学())

  爬虫抓取网页数据,一般要用到urllib库的request库,然后再用beautifulsoup库进行解析。但是urllib库只提供了对http协议的简单封装,scrapy框架提供了丰富的工具,可以完成一系列的网页抓取任务。scrapy框架提供了一套非常完善的简单爬虫套件,你可以根据实际需要进行封装。

  前面我们使用scrapy框架提供的selector实现了网页的解析,是一种简单粗暴的方式。你只需要复制selector代码,一行代码就能实现简单的解析。今天我们将使用scrapy框架提供的一些特殊的库来实现抓取网页的工作。其实一开始我想直接使用scrapy提供的spider库来实现这些功能,后来这样做非常费力,我们还得去封装一些特殊的地方,如此一来工作量可能会超出你的能力。

  要知道,scrapy的发明者是robertbyrne,他把一款入门级的python框架写到了几十万行的代码,非常复杂,而且实现了复杂的特性。今天我们就不用像以前那样复杂的框架,而是使用scrapy框架提供的特殊的库进行抓取。这些特殊的库有什么作用呢?它们最主要的作用是作为库来方便我们调用scrapy框架进行相应的网页抓取工作。

  这些库可以跟你正常框架提供的功能没有区别,只不过是实现相应的效果,如请求页面是一个python方法,我们要先通过pythonscrapy库提供的requestapi接口来访问相应的服务器网站。这里我们就不在分析item是什么了,网站已经提供了。比如接口定义了,请求速度比较慢等等,而且我们只要根据接口写一些指令即可。

  opener=scrapy.opener(urllib.request.build_opener(urllib.request.request))selector=scrapy.selector(urllib.request.request)response=scrapy.response(selector)下面我们看一个简单的网页抓取案例:图1item列表:其中我们提供了页面地址,抓取时间,抓取规则,抓取返回值。

  我们想抓取一个正则表达式列表中包含的元素,是否包含字符串,并且元素名必须是有意义的,字符串包含三个参数(元素名,抓取时间,抓取规则)可以自定义字符串的抓取速度。图2我们的请求规则可以使用request-user-agent参数指定,也可以不指定。request-user-agent参数可以告诉我们,抓取请求的协议是http还是https,并且传入的是request-user-agent,是否会自动调用twitter,github等服务进行抓取,如果不是必须使用的服务,是否会直接以文件的形式传递请求规则。图3我们抓取的规则其实是http。看一下下面是我根据抓取请求规则写的例子。第一行可以把源代码中包含的。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线