本次分享将介紹Scrapy在Windows系統中的安裝以及使用,主要解決的問題有:
- 在Windows中安裝Scrapy子產品
- 在IDE(PyCharm)中使用Scrapy
- Scrapy導出的csv檔案亂碼
首先介紹如何在Windows中安裝Scrapy子產品。
在
https://www.lfd.uci.edu/~gohlke/pythonlibs/網站中下載下傳适合自己Python版本和Windows位數的Twisted子產品(Scrapy子產品依賴于它)及Scrapy子產品, 然後放在Python安裝目錄下的Scripts檔案加下,用pip install方式安裝。
子產品安裝完畢,輸入’scrapy -h’, 輸出資訊如下則表示Scrapy安裝成功。
為了能随時随地地使用Scrapy, 需要将Scrapy添加到Windons系統的環境變量中,具體過程不再詳述。
添加到環境變量後再重新開機電腦,就能随時建立Scrapy項目了,至此,我們以成功地在Windows中安裝了Scrapy,并能随時建立Scrapy項目。
接着講述如何在PyCharm中使用Scrapy.
在cmd中輸入’scrapy startproject bookSpider’建立bookSpider項目,再在PyCharm中将其導入,檔案結構如下:
我們将完成完成與
Scrapy爬蟲(5)爬取當當網圖書暢銷榜中的項目一樣的功能,隻不過,這一次是在Windows的PyCharm中進行。
在settings.py中設定“ROBOTSTXT_OBEY = False”. 修改items.py,代碼如下:
import scrapy
class BookspiderItem(scrapy.Item):
rank = scrapy.Field()
name = scrapy.Field()
author = scrapy.Field()
press = scrapy.Field()
price = scrapy.Field()
comments = scrapy.Field()
然後,在spiders檔案夾下建立BookSpider.py,代碼如下:
import scrapy
import scrapy.cmdline
from scrapy.selector import Selector
from bookSpider.items import BookspiderItem
class bookSpider(scrapy.Spider):
name = 'bookScrapy'
start_urls = ['http://bang.dangdang.com/books/bestsellers/01.00.00.00.00.00-recent7-0-0-1-%d'%i for i in range(1,26)]
def parse(self, response):
item = BookspiderItem()
sel = Selector(response)
book_list = response.css('ul.bang_list.clearfix.bang_list_mode').xpath('li')
for book in book_list:
item['rank'] = book.css('div.list_num').xpath('text()').extract_first()
item['name'] = book.css('div.name').xpath('a/text()').extract_first()
item['author'] = book.css('div.publisher_info')[0].xpath('a/text()').extract_first()
item['press'] = book.css('div.publisher_info')[1].xpath('a/text()').extract_first()
item['price'] = book.css('span.price_n').xpath('text()').extract_first()
item['comments'] = book.css('div.star').xpath('a/text()').extract_first()
yield item
def main():
scrapy.cmdline.execute(['scrapy', 'crawl', 'bookScrapy', '-o', 'dangdangBook.csv', '-t', 'csv'])
main()
在上述代碼中,引入scrapy.cmdline,能夠執行cmd指令,并定義了main()函數來完成cmd指令的執行。
運作BookSpider.py,程式出錯,因為缺少win32api子產品。
莫慌,可以在
網站中下載下傳pywin32子產品,然後安裝即可。安裝完pywin32子產品後,再次運作BookSpider.py,這次程式運作成功!
同時,該程式也生成了csv檔案。
至此,我們以能夠在PyCharm環境中使用Scrapy.
生成的csv檔案内容如下,
我們用WPS Excel打開并沒有亂碼,但是用Microsoft Excel打開會亂碼。解決Microsoft Excel打開亂碼的問題,可以具體參考
https://www.zhihu.com/question/21414417.
本次分享到此結束,歡迎大家交流~~