import scrapy
from …items import dangdangitem
class ddspider(scrapy.spider):
name = 『dd』
allowed_domains = [『dangdang.com』]
start_urls = [『
def parse(self, response):
# 使用xpath獲取包含所有書籍資訊的li
lis = response.xpath('//ul[@class="bigimg"]/li')
# 每次遍歷獲取乙個li的內容
for li in lis:
# 上面從items中引入的類,用於儲存資訊
item = dangdangitem()
item['name'] = li.xpath('a/@title').extract()[0]
item['img'] = li.xpath('a[1]/img/@src').extract()[0]
item['price'] = li.xpath('p[3]/span[1]/text()').extract()[0] if len(li.xpath('p[3]/span[1]/text()')) > 0 else '無**資訊'
item['auth'] = li.xpath('p[5]/span[1]/a[1]/text()').extract()[0] if len(li.xpath('p[5]/span[1]/a[1]/text()')) > 0 else '無作者資訊'
item['release_time'] = li.xpath('p[5]/span[2]/text()').extract()[0] if len(li.xpath('p[5]/span[2]/text()')) > 0 else '無發布時間'
# print(item['auth'])
# 將爬取到的資料提交到pipelines進行輸出
yield item
pagenum = 10
for page in range(2, pagenum):
page = '' + str(page)
# 對頁面page提交request請求,利用自定義的解析方法parse對獲取到的頁面進行解析
yield scrapy.request(page, callback=self.parse)
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 爬取流程
什麼時候到pipeline,什麼 時候到spider這個就不說了,這個是框架跳轉到的流程 關鍵是訪問之前要登入怎麼辦,資料還要注入呢 這是個列表,裡面就是爬取的鏈結了 我們前面爬取就只是寫了乙個,但是其實可以寫多個 鏈結又是怎麼訪問的呢 這東西你就可以手動提取鏈結返回了 這東西你就得好好注意了 從入...