scrapy爬蟲簡單案例(簡單易懂 適合新手)
阿新 • • 發佈:2022-04-03
爬取所有的電影名字,型別,時間等資訊
1.準備工作
建立專案
win + R 開啟cmd輸入
scrapy startproject 專案名
然後在pycharm終端輸入
scrapy genspider 類名 xxx.com
一個爬蟲類就建立好了
2.思路分析
- 我們爬取全站資料首先要將分頁的url規律找到
- 因為我們的資料在二級頁碼,所以需要在一級頁面裡面拿到所以的二級頁碼url再進行請求
- 二級頁碼url拿到後就可以開始寫xpath獲取需要的資料了*
- 具體註釋在程式碼內
程式碼如下
`import scrapy
from move.items import MoveItem
class TestSpider(scrapy.Spider):
name = 'Test'
# allowed_domains = ['xxx.con'] def start_requests(self): # 有4896頁資料所有迴圈請求 for i in range(1, 4897): # html分頁符用i代替 start_urls = f'https://www.ddoutv.com/f/27-{i}.html' # 手動請求url yield scrapy.Request(url=start_urls, callback=self.parse) def parse(self, response, **kwargs): # 爬取所有的二級頁面的url all_a = response.xpath('//div[@class="stui-pannel-box"]/div[@class="stui-pannel_bd"]/ul/li') # 遍歷出來 for li in all_a: # type:scrapy.Selector link = li.xpath('./div/a/@href').extract()[0] # 將url拼接完整 links = response.urljoin(link) # 回撥 yield scrapy.Request(url=links, callback=self.reques) def reques(self, response): # 獲取二級頁面的資料 all_name = response.xpath('//div[@class="stui-content"]/div[@class="container"]/div[@class="row"]/div/div[2]') for i in all_name: name = i.xpath('./h1/text()').extract_first(default=0) print(name) types = i.xpath('./p[1]/a[1]/text()').extract_first(default=0) print(types) address = i.xpath('./p[1]/a[2]/text()').extract_first(default=0) print(address) year = i.xpath('./p[1]/a[3]/text()').extract_first(default=0) print(year) actor = i.xpath('./p[2]/text()').extract_first(default=0) print(actor) director = i.xpath('./p[3]/text()').extract_first(default=0) print(director) update = i.xpath('./p[4]/text()').extract_first(default=0) print(update)`
3.執行結果圖