結合上節,網多頁的獲取只需要修改
dang.py
importscrapyfrom scrapy_dangdang.items importscrapydangdang095item
classdangspider(scrapy.spider):
name = 'dang'
allowed_domains = ['category.dangdang.com']
start_urls = ['']
base_url = ''
page = 1
defparse(self, response):
li_list = response.xpath('//ul[@id="component_59"]/li')
for li inli_list:
src = li.xpath('.//img/@data-original').extract_first()
#第一張和其他的的標籤的屬性是不一樣的
ifsrc:
src =src
else:
src = li.xpath('.//img/@src').extract_first()
name = li.xpath('.//img/@alt').extract_first()
price = li.xpath('.//p[@class="price"]/span[1]/text()').extract_first()
book = scrapydangdang095item(src=src,name=name,price=price)
#獲取乙個book就將book交給pipelines
yieldbook
#每一頁的爬取的業務邏輯全都是一樣的,所以我們只需要將執行的那個頁的請求再次呼叫parse方法就可以了#2-cp01.01.02.00.00.00.html#3-cp01.01.02.00.00.00.html#4-cp01.01.02.00.00.00.html
if self.page < 100:
self.page = self.page + 1
url = self.base_url + str(self.page) + '-cp01.01.02.00.00.00.html'
#怎麼去呼叫parse方法#scrapy.request就是scrpay的get請求#url就是請求位址#callback是你要執行的那個函式 注意不需要加()
執行
ctrl+z暫定
scrapy基礎 當當網爬取
xpath與正則簡單對比 1.xpath表示式效率更高 2.正規表示式功能更強大 3.一般優先選擇xpath,解決不了再用正則 xpath提取規則 逐層提取 text 提取標籤下的文字 html head title text 3.標籤名 提取所有名為的標籤 4.標籤名 屬性 屬性值 提取屬性為 的...
scrapy爬當當網書籍資訊
本次只爬取搜尋的python相關的所有書籍 scrapy start project ddbook cd ddbook ddbook scrapy genspider t basic book dangdang.com 然後開啟 book.py 一共100頁 for i in range 1,101...
我的第乙個Scrapy 程式 爬取當當網資訊
前面已經安裝了scrapy,下面來實現第乙個測試程式。scrapy是乙個爬蟲框架,他的基本流程如下所示 下面截圖來自網際網路 簡單的說,我們需要寫乙個item檔案,定義返回的資料結構 寫乙個spider檔案,具體爬取的資料程式,以及乙個管道 pipeline 檔案,作為後續操作,比如儲存資料等等。s...