最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

scrapy實踐之翻頁爬取的實現(xiàn)

 更新時間:2021年01月05日 09:38:04   作者:生信修煉手冊  
這篇文章主要介紹了scrapy實踐之翻頁爬取的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

安裝

Scrapy的安裝很簡單,官方文檔也有詳細的說明 http://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/install.html 。這里不詳細說明了。

在scrapy框架中,spider具有以下幾個功能

1. 定義初始爬取的url

2. 定義爬取的行為,是否跟進鏈接

3. 從網頁中提取結構化數(shù)據(jù)

所謂的跟進鏈接,其實就是自動爬取該頁的所有鏈接,然后順著對應的鏈接延伸開來不斷爬取,這樣只需要提供一個網站首頁,理論上就可以實現(xiàn)網站全部頁面的爬取,實現(xiàn)點到面的功能。

如果自己來開發(fā),不僅需要在算法層面,考慮是使用深度優(yōu)先還是廣度優(yōu)先,還需要處理好提取的url的限制條件等細節(jié)工作。在scrapy中,開發(fā)過程被大大簡化了,我們只需要定義以下幾個關鍵部分的代碼,就可以實現(xiàn)翻頁效果。

1. Spider

核心思想是在parse方法中,返回新的Requests請求,代碼如下

import scrapy
 
from hello_world.items import HelloWorldItem
 
class MirSpider(scrapy.Spider):
  name = "MirSpider"
  start_urls = ["http://mirtarbase.cuhk.edu.cn/php/search.php?opt=species&org=bta&sort=id&order=asc&page=1"]
 
  def parse(self, response):
    domain = 'http://mirtarbase.cuhk.edu.cn'
    for row in response.xpath('//table/tr'):
      item = HelloWorldItem()
      res = []
      for col in (row.xpath('td/text()')):
        res.append(col.extract())
      if res[0] != 'Bos taurus':
        continue
      item['species'] = res[0]
      item['miRNA'] = res[2]
      item['target'] = res[3]
      item['total'] = res[4]
      item['papers'] = res[5]
      yield item
    for url in response.xpath('//a/@href').extract():
      if 'page' in url:
        url = domain + url
        yield scrapy.Request(url, callback = self.parse, dont_filter = False)

關鍵代碼是最后幾行的for循環(huán),在start_urls中,我們只提供了一個初識的url, 在parse方法中,除了常規(guī)的返回結構性數(shù)據(jù)item外,我們還返回了新的requests請求,首先提取頁面上所有的url, 并對url的鏈接進行了限制,對需要爬取的url鏈接以Request的方法進行返回,注意dont_filter的設置,當設置為False時,會調用scrapy默認的url去重機制,這樣不會重復下載。

2. Item Pipeline

對于下載的item, 有些會出現(xiàn)重復的現(xiàn)象,此時可以在pipelines.py中,對item進行操作,實現(xiàn)item去重的代碼如下

from itemadapter import ItemAdapter
 
 
class HelloWorldPipeline:
  def __init__(self):
    self.link_set = set()
 
  def process_item(self, item, spider):
    link = item['miRNA'] + item['target']
    if link in self.link_set:
      raise DropItem(item)
    self.link_set.add(link) 
    return item

在process_item方法中,通過一個set對象來達到去重的效果。需要注意,默認pipelines是沒有開啟的,編寫完代碼之后,需要在settings.py中進行配置,開啟對應的pipeline, 內容如下

ITEM_PIPELINES = {
  'hello_world.pipelines.HelloWorldPipeline': 300,
}

對于標準的多頁表格數(shù)據(jù),采用上述的代碼可以輕松實現(xiàn)翻頁效果,非常的方便。

到此這篇關于scrapy實踐之翻頁爬取的實現(xiàn)的文章就介紹到這了,更多相關scrapy 翻頁爬取內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python讀取csv、Excel文件生成圖表的方法

    Python讀取csv、Excel文件生成圖表的方法

    這篇文章主要介紹了Python讀取csv、Excel文件生成圖表,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • python畫圖--輸出指定像素點的顏色值方法

    python畫圖--輸出指定像素點的顏色值方法

    今天小編就為大家分享一篇python畫圖--輸出指定像素點的顏色值方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • 快速了解Python相對導入

    快速了解Python相對導入

    這篇文章主要介紹了快速了解Python相對導入,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • 使用apiDoc實現(xiàn)python接口文檔編寫

    使用apiDoc實現(xiàn)python接口文檔編寫

    今天小編就為大家分享一篇使用apiDoc實現(xiàn)python接口文檔編寫,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python利用柯里化實現(xiàn)提高代碼質量

    Python利用柯里化實現(xiàn)提高代碼質量

    柯里化(Currying)是函數(shù)式編程中的一個重要概念,它可以將一個多參數(shù)函數(shù)轉化為一系列單參數(shù)函數(shù)的組合,本文將詳細解釋什么是柯里化,如何在Python中實現(xiàn)柯里化,感興趣的可以了解下
    2024-01-01
  • pytorch加載自己的圖像數(shù)據(jù)集實例

    pytorch加載自己的圖像數(shù)據(jù)集實例

    這篇文章主要介紹了pytorch加載自己的圖像數(shù)據(jù)集實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • 提高Python代碼可讀性的5個技巧分享

    提高Python代碼可讀性的5個技巧分享

    Python?中有許多方法可以幫助我們理解代碼的內部工作原理,良好的編程習慣,可以使我們的工作事半功倍!本文為大家總結了五個技巧,希望有所幫助
    2022-08-08
  • 解決python中os.system調用exe文件的問題

    解決python中os.system調用exe文件的問題

    這篇文章主要介紹了解決python中os.system調用exe文件的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • pycharm內無法import已安裝的模塊問題解決

    pycharm內無法import已安裝的模塊問題解決

    今天小編就為大家分享一篇pycharm內無法import已安裝的模塊問題解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • 詳解Python中*args和**kwargs的使用

    詳解Python中*args和**kwargs的使用

    本文我們將通過示例了解Python中*args和?**kwargs的使用方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04

最新評論

普兰店市| 墨江| 洛扎县| 芒康县| 平山县| 闻喜县| 巫溪县| 时尚| 武夷山市| 栾城县| 永春县| 墨竹工卡县| 梧州市| 女性| 宁河县| 图片| 乳源| 淳安县| 九寨沟县| 安宁市| 太康县| 西昌市| 襄城县| 红原县| 余江县| 介休市| 香格里拉县| 榆社县| 洛川县| 陇西县| 察隅县| 合阳县| 当涂县| 铁岭市| 桐梓县| 常熟市| 宁波市| 绵阳市| 密山市| 雷州市| 莆田市|