天天看點

第一次爬蟲記錄,使

一、環境搭建,參考上篇,​​python快速建構爬蟲項目Scrapy,和Scrapy項目結構分析​​

周末很晚了,不詳細說明了,這裡附上代碼,可供參考下

二、這是項目結構

三、根據初始化的項目,隻需修改兩處即可

​​settings.py​​​ 和 ​​jdksplider.py​​,别關注名字,本來我是準備爬取 Oracle官網的 JDK 的相關資料的,這裡稍微麻煩了一些,為了盡快寫出 Demo 示例,就取了…

​​settings.py​​,代碼如下

# -*- coding: utf-8 -*-

BOT_NAME = 'jdk_scrapy'

SPIDER_MODULES = ['jdk_scrapy.spiders']
NEWSPIDER_MODULE = 'jdk_scrapy.spiders'

# Obey robots.txt rules,隻改了改了這裡
ROBOTSTXT_OBEY = False

# Override the default request headers:還有這裡
DEFAULT_REQUEST_HEADERS = {
  'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  'Accept-Language': 'en',
  'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36'
}      

​​jdksplider.py​​,代碼如下

# -*- coding: utf-8 -*-
import scrapy
from scrapy.http.response.html import HtmlResponse
from scrapy.selector.unified import SelectorList


class JdkspliderSpider(scrapy.Spider):
    name = "jdksplider"
    start_urls =

    def parse(self, response):
        duanzidiv = response.xpath("//ul[@class='feedlist_mod home']/li")
        for dz in duanzidiv:
            dz_xpath = dz.xpath(".//a//text()").get()
            print(dz_xpath)      

四、指令行運作項目

scrapy crawl jdksplider      

即可在控制台列印,如下資料

D:\learningsoftwares\envs\py36\python.exe D:/Python/scrapy/jdk_scrapy/start.py
2019-07-20 22:37:55 [scrapy.utils.log] INFO: Scrapy 1.3.3 started (bot: jdk_scrapy)
2019-07-20 22:37:55 [scrapy.utils.log] INFO: Overridden settings: {'BOT_NAME': 'jdk_scrapy', 'NEWSPIDER_MODULE': 'jdk_scrapy.spiders', 'SPIDER_MODULES': ['jdk_scrapy.spiders']}
2019-07-20 22:37:55 [scrapy.middleware] INFO: Enabled extensions:
['scrapy.extensions.corestats.CoreStats',
 'scrapy.extensions.telnet.TelnetConsole',
 'scrapy.extensions.logstats.LogStats']
2019-07-20 22:37:56 [scrapy.middleware] INFO: Enabled downloader middlewares:
['scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware',
 'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware',
 'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware',
 'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware',
 'scrapy.downloadermiddlewares.retry.RetryMiddleware',
 'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware',
 'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware',
 'scrapy.downloadermiddlewares.redirect.RedirectMiddleware',
 'scrapy.downloadermiddlewares.cookies.CookiesMiddleware',
 'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware',
 'scrapy.downloadermiddlewares.stats.DownloaderStats']
2019-07-20 22:37:56 [scrapy.middleware] INFO: Enabled spider middlewares:
['scrapy.spidermiddlewares.httperror.HttpErrorMiddleware',
 'scrapy.spidermiddlewares.offsite.OffsiteMiddleware',
 'scrapy.spidermiddlewares.referer.RefererMiddleware',
 'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware',
 'scrapy.spidermiddlewares.depth.DepthMiddleware']
2019-07-20 22:37:56 [scrapy.middleware] INFO: Enabled item pipelines:
[]
2019-07-20 22:37:56 [scrapy.core.engine] INFO: Spider opened
2019-07-20 22:37:56 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2019-07-20 22:37:56 [scrapy.extensions.telnet] DEBUG: Telnet console listening on 127.0.0.1:6023
2019-07-20 22:38:10 [scrapy.core.engine] DEBUG: Crawled (200) <GET ht(referer: None)

                                53K!拿下阿裡Python崗,這些技術點全考了!                            
19:位元組跳動面經來啦!!!                            
None

                                BAT 力捧的 AI 項目再次爆發,這些程式員都受影響!                            

                                General information (1)                            

                                資訊--2019年6月                            

                                資訊類網站增量式爬蟲                            
None

                                【IT資訊】全新程式設計語言V釋出                            

                                三款大氣資訊類wordpress主題                            

                                速記工具原來這麼好用,錯過了讓你抱憾終身                            

                                華為Mate 20 Pro迎來重磅福利,專屬免費增值服務,知道就是賺到                            

                                蘋果庫克慌了!iPhone XR降價也沒人買,原來是華為放大招了                            
None

                                華為手機自帶語音轉文字的功能,轉換方法如下                            

                                手機錄音轉文字怎麼做?3分鐘輕松完成錄音轉文字教程                            

                                微信不小心删除的好友和群聊,如何偷偷的加回來?                            

                                如何将語音翻譯成中文、語音轉文字怎麼做                            

                                資訊|某搜尋引擎推廣企業定制化内訓圓滿成功                            

                                進退博弈:恒指7.12号早盤資訊及交易計劃                            
None

                                雲傑恒指:7.19恒指期貨早盤資訊                            

                                進退博弈:恒指7.16号早盤資訊及操作建議                            

                                《Excel函數與公式速查手冊》賽貝爾資訊(編著)                            

                                19年關于跨境電商,它的一些資訊幹貨,你們了解嗎?                            

                                雲傑恒指:6.20恒指期貨早盤資訊                            

                                資訊|實戰公開課《高效PMO建設與發展》圓滿結束                            
None

                                程式人生(項目導入依賴)                            

                                程式人生之思考人生                            

                                我的程式人生:碼農                            

                                兩場雨的程式人生                            

                                程式人生-雜談python                            

                                [程式人生]程式員的一生如何保障?                            
None

                                啟航 —— 記 —— 第二次自考的反思:自考與自我改造的困境                            

                                夢想還是要有的,即使被摧殘着!                            

                                開啟技術之旅——我的第一篇部落格                            

                                【程式人生】大三Unity用戶端第一次找工作的經曆                            

                                【程式人生】Java Web 開發腳手架調研                            

                                軟體設計師考試經曆                            

                                程式帝國四大操作之單表新增                            

                                【程式人生】 簡單解讀linux shell腳本語言和lmdb資料庫                            

                                程式帝國四大操作之單表修改                            

                                18年往屆菜鳥的程式設計進階路                            
剛剛閱讀在這裡,點選重新整理
2019-07-20 22:38:11 [scrapy.core.engine] INFO: Closing spider (finished)
2019-07-20 22:38:11 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
{'downloader/request_bytes': 292,
 'downloader/request_count': 1,
 'downloader/request_method_count/GET': 1,
 'downloader/response_bytes': 29882,
 'downloader/response_count': 1,
 'downloader/response_status_count/200': 1,
 'finish_reason': 'finished',
 'finish_time': datetime.datetime(2019, 7, 20, 14, 38, 11, 83274),
 'log_count/DEBUG': 2,
 'log_count/INFO': 7,
 'response_received_count': 1,
 'scheduler/dequeued': 1,
 'scheduler/dequeued/memory': 1,
 'scheduler/enqueued': 1,
 'scheduler/enqueued/memory': 1,
 'start_time': datetime.datetime(2019, 7, 20, 14, 37, 56, 308131)}
2019-07-20 22:38:11 [scrapy.core.engine] INFO: Spider closed (finished)

Process finished with exit code 0      

五、這裡還有個簡單的啟動腳本,就不用使用指令行啟動項目了,

​​start.py​​,開始不能運作,後來,找到原因了。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# 開始這裡不能運作,不知道為什麼???
# 後來問題解決,是 pip 和 conda 安裝的scrapy,是不一樣的,環境設為py3.6版本,用conda install scrapy 重新安裝的
from scrapy import cmdline
cmdline.execute("scrapy crawl jdksplider".split())