用Scrapy爬取噹噹網書籍信息

用Scrapy爬取噹噹網書籍信息

日期:2019-04-23 23:27:34 星期二html

項目流程

  • 肯定項目目標python

  • 建立Scrapy項目編程

  • 定義Item(數據)微信

  • 建立和編寫Spider文件app

  • 修改Settings.py文件dom

  • 運行Scrapy爬蟲scrapy

肯定項目目標

今天經過建立一個爬取噹噹網2018年圖書銷售榜單的項目來認識一下Scrapy的工做流程ide

噹噹連接:
"http://bang.dangdang.com/books/bestsellers/01.54.00.00.00.00-year-2018-0-1-1  "函數

目標:網站

  • 爬取前3頁的數據

  • 爬取字段:圖書名、做者和價格

建立Scrapy項目

首先要安裝scrapy這個庫,但這個安裝很麻煩,很容易掉坑

我這裏是用anaconda下載的,這種方式很方便

下載命令:pip install scrapy

用cmd命令打開命令行窗口,輸入如下命令:

scrapy startproject dangdang

dangdang是項目的名稱

到這裏就建立好了咱們的dangdang項目

定義Item數據

打開items.py文件,並添加如下內容:

1import scrapy
2class DangdangItem(scrapy.Item): #繼承scrapy.Item類 
3    name = scrapy.Field() #定義數據屬性
4    author = scrapy.Field()
5    price = scrapy.Field()

建立和編寫Spider文件

在spiders文件夾裏面新建一個spider.py(本身命名的),編寫爬去代碼。
代碼以下:

 1import scrapy
2from bs4 import BeautifulSoup
3from ..items import DangdangItem
4#..表明上層目錄,由於如今spider文件夾,item在上層目錄,而後導入DangdangItem模塊
5class DangdangSpider(scrapy.Spider):
6#括號裏須要有scrapy.Spider這個基類,這個基類裏面包含不少屬性和方法供咱們使用
7    name = "dangdang" #項目名字,待會運行爬蟲時要用到
8    allow_domains = ["http://bang.dangdang.com"
9    #容許爬取的域名,能夠準肯定位,防止跳到其它廣告
10    start_urls = [] 
11    for num in range(1,4): #獲取前三頁的連接
12        url = f"http://bang.dangdang.com/books/bestsellers/01.54.00.00.00.00-year-2018-0-1-{num}"
13        start_urls.append(url)
14
15    def parse(self,reponse): #解析並提取數據的函數
16        soup = BeautifulSoup(reponse.text,"html.parser")
17        tag_ul = soup.find("ul",class_="bang_list clearfix bang_list_mode")
18        tags_li = tag_ul.find_all("li")
19        for tag in tags_li:
20            item = DangdangItem() #建立一個item對象,用來處理和傳輸數據
21            item["name"] =tag.find("div",class_="name").find("a").text
22            item["author"]=tag.find("div",class_="publisher_info").find("a").text 
23            item["price"] = tag.find("span",class_="price_n").text
24            print(item["name"])
25            print("="*40)
26            yield item

**修改Settings.py文件 **

爬蟲已經寫好後還須要去settings.py文件裏面修改一些內容

1USER_AGENT = 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36' #假裝爬蟲
2
3ROBOTSTXT_OBEY = False 
4#有些網站的robots.txt規定是不容許爬取的,設置爲True,scrapy就能夠無視這個規定

運行Scrapy文件

用cmd打開命令窗口,輸入如下命令便可開始運行程序

scrapy crawl dangdang

本文尚未對數據進行存儲,若是須要如何存儲數據,能夠加我私聊

或者掃碼進羣與朋友們進行交流

以爲個人文章對你有幫助的話,請分享給更多的人

謝謝觀看~



本文分享自微信公衆號 - 佛系編程人(py520llj)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索