亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久

網(wǎng)絡(luò )爬蟲(chóng):使用Scrapy框架編撰一個(gè)抓取書(shū)籍信息的爬蟲(chóng)服務(wù)

優(yōu)采云 發(fā)布時(shí)間: 2020-05-04 08:06

  上周學(xué)習了BeautifulSoup的基礎知識并用它完成了一個(gè)網(wǎng)絡(luò )爬蟲(chóng)( 使用Beautiful Soup編撰一個(gè)爬蟲(chóng) 系列隨筆匯總),

  BeautifulSoup是一個(gè)十分流行的Python網(wǎng)路抓取庫,它提供了一個(gè)基于HTML結構的Python對象。

  雖然簡(jiǎn)單易懂,又能非常好的處理HTML數據,

  但是相比Scrapy而言網(wǎng)絡(luò )爬蟲(chóng)程序書(shū),BeautifulSoup有一個(gè)最大的缺點(diǎn):慢。

  Scrapy 是一個(gè)開(kāi)源的 Python 數據抓取框架,速度快,強大,而且使用簡(jiǎn)單。

  來(lái)看一個(gè)官網(wǎng)主頁(yè)上的簡(jiǎn)單并完整的爬蟲(chóng):

  

  雖然只有10行左右的代碼,但是它的確是一個(gè)完整的爬蟲(chóng)服務(wù):

  Scrapy所有的懇求都是異步的:

  安裝(Mac)

  pip install scrapy

  其他操作系統請參考完整安裝指導:

  Spider類(lèi)想要抒發(fā)的是:如何抓取一個(gè)確定了的網(wǎng)站的數據。比如在start_urls里定義的去那個(gè)鏈接抓取,parse()方法中定義的要抓取什么樣的數據。

  當一個(gè)Spider開(kāi)始執行的時(shí)侯,它首先從start_urls()中的第一個(gè)鏈接開(kāi)始發(fā)起懇求網(wǎng)絡(luò )爬蟲(chóng)程序書(shū),然后在callback里處理返回的數據。

  Item類(lèi)提供低格的數據,可以理解為數據Model類(lèi)。

  Scrapy的Selector類(lèi)基于lxml庫,提供HTML或XML轉換功能。以response對象作為參數生成的Selector實(shí)例即可通過(guò)實(shí)例對象的xpath()方法獲取節點(diǎn)的數據。

  接下來(lái)將上一個(gè)Beautiful Soup版的抓取書(shū)籍信息的事例( 使用Beautiful Soup編撰一個(gè)爬蟲(chóng) 系列隨筆匯總)改寫(xiě)成Scrapy版本。

  scrapy startproject book_project

  這行命令會(huì )創(chuàng )建一個(gè)名為book_project的項目。

  即實(shí)體類(lèi),代碼如下:

  import scrapy

class BookItem(scrapy.Item):

title = scrapy.Field()

isbn = scrapy.Field()

price = scrapy.Field()

  設置這個(gè)Spider的名稱(chēng),允許爬取的域名和從那個(gè)鏈接開(kāi)始:

  class BookInfoSpider(scrapy.Spider):

name = "bookinfo"

allowed_domains = ["allitebooks.com", "amazon.com"]

start_urls = [

"http://www.allitebooks.com/security/",

]

  def parse(self, response):

# response.xpath('//a[contains(@title, "Last Page →")]/@href').re(r'(\d+)')[0]

num_pages = int(response.xpath('//a[contains(@title, "Last Page →")]/text()').extract_first())

base_url = "http://www.allitebooks.com/security/page/{0}/"

for page in range(1, num_pages):

yield scrapy.Request(base_url.format(page), dont_filter=True, callback=self.parse_page)

0 個(gè)評論

要回復文章請先登錄注冊


官方客服QQ群

微信人工客服

QQ人工客服


線(xiàn)

亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久