一、環境搭建,參考上篇,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())