爬蟲 scrapy初試

2022-07-15 10:45:08 字數 2291 閱讀 5893

初步操作:

scrapy startproject hello (建立hello專案)

scrapy genspider chouti  dig.chouti.com 建立乙個spider

scrapy crawl chouti執行spider  指定執行chouti這個專案

引用進到spider 裡面 寫 chouti.py

網域名稱已經 被程式寫好 

內容都在response裡面,

我們直接通過選擇器 去拿就行

from scrapy.selector import selector,htmlxpathselector

#

拿到單頁的所有標籤

item_list=selector(response=response).xpath('

//div[@id="content-list"]/div[@class="item"]')

for item in

item_list:

title=item.xpath('

.//a[@class="show-content color-chag"]/text()

').extract_first().strip()

chouti_url=item.xpath('

.//a[@class="show-content color-chag"]/@href

').extract_first().strip()

#a_list=item.xpath('.*//a[@class="show-content"]/text()').extract_first()

item_obj=wormitem(title=title,url=chouti_url)

return item_obj

抽屜文章的url 和title

然後需要翻頁;

原理就是拿到當前頁面 所有的 頁面鏈結的值,然後去重

在 類屬性裡面定義乙個 空set() ,因為 程式啟動 只會執行一次類方法,所以不用擔心被覆蓋

拿到那些位址後,交給**函式 重複操作

#

拿頁碼#

拿本頁的所有頁碼

page_l=selector(response=response).xpath('

//div[@id="dig_lcpage"]//a/@href

').extract()

for page in

page_l:

page = '

' +page

#判斷是不是重複

if page not

inself.url_set:

self.url_set.add(page)

#**, 知識點: 類屬性只有在程式執行的時候會載入,所以 類屬性 url_set 不會刷掉

yield request(url=page,callback=self.parse)

拿頁碼

類屬性:
class choutispider(scrapy.spider):

name = 'chouti'

allowed_domains = ['dig.chouti.com']

start_urls = ['/']

url_set=set()

setttings中 放開注釋:  ##########不同的專案名稱 關鍵字也不同

spider_middlewares = 

item:

class

wormitem(scrapy.item):

#define the fields for your item here like:

#name = scrapy.field()

title=scrapy.field()

url=scrapy.field()

item

Python 網頁爬蟲初試

find find all find name attrs recursive string kwargs find all name attrs recursive string kwargs name 引數可以查詢所有名字為 name 的tag,字串物件會被自動忽略掉.keyword 引數 如果...

scrapy爬蟲框架

作者經過幾周的python爬蟲實踐之後,深入學習了一下scrapy這個爬蟲框架,現將一些基本知識和 總結整理一下,以備後查。2.scrapy的命令列使用 這部分網上很多部落格都有總結,不需要背,理解會用主要的命令 startproject crawl fetch list genspider.即可,...

scrapy 爬蟲框架

1.安裝 公升級pip版本 pip install upgrade pip 通過pip安裝scrapy框架 pip install scrapy 安裝成功 只執行scrapy 進行測試是否安裝成功 2.scrapy startproject 爬蟲專案名稱 執行此命令,可以生成乙個爬蟲專案 會預先生成...