scrapy爬取豆瓣電影250為什么代碼感覺都對了?
首先說明一下,題主在提問的時候盡量把問題描述清楚,這樣才能針對你出現問題的地方給出準確的回答。
題主只說明了在運行時有錯誤,可以卻并沒有給出錯誤信息,我也不知道該怎么回答你的,索性我立馬寫一下代碼,題主可以對比你自己的代碼參考一下。
首先在工作目錄創建一個scrapy工程:scrapy startproject doubantop250
然后進入項目目錄:cd doubantop250
scrapy genspider douban "https://movie.douban.com/top250"
接下來使用pycharm打開剛剛新建好的scrapy項目。
打開spiders目錄下的douban.py文件,在def parse(self, response):中編寫具體的代碼
首先我們先分析網頁結果,F12打開cchrome瀏覽器的開發者工具
鼠標左鍵單擊紅色區域的圖標,然后把鼠標移動到我們需要提取的數據上。
我們發現,我們需要的數據都在li標簽里面。每一個li便簽代表一部電影
每頁有25個li標簽,也就是有25部電影。總共有10也,250部電影。
然后我們在網頁上右鍵 點擊 查看網頁源代碼,隨便搜索一部電影的名稱,在網頁源代碼中可以找到電影名稱,說明我們需要提取的在網頁源代碼中,我們可以直接提取數據。
下面就開始寫具體的代碼,我喜歡使用xpath。
先提取出了每部電影的所有信息,然后在此基礎上提取電影的名稱、演員列表、分類、評論數。
完整代碼如下
在CMD中運行:scrapy crawl douban -o douban.csv,把數據保存到csv文件中
直接打開csv文件可能會出現亂碼,可以使用notepad++把編碼轉換為UTF-8-BOM編碼。
代碼寫的有些簡單,僅僅滿足了提取數據的要求。
希望可以幫助到題主,如果有什么問題,可以在評論區,一起討論,一起學習。