电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

一文讀懂python Scrapy爬蟲框架

瀏覽:107日期:2022-06-27 10:57:47
Scrapy是什么?

先看官網上的說明,http://scrapy-chs.readthedocs.io/zh_CN/latest/intro/overview.html

Scrapy是一個為了爬取網站數據,提取結構性數據而編寫的應用框架。可以應用在包括數據挖掘,信息處理或存儲歷史數據等一系列的程序中。

其最初是為了頁面抓取 (更確切來說, 網絡抓取 )所設計的, 也可以應用在獲取API所返回的數據(例如 Amazon Associates Web Services ) 或者通用的網絡爬蟲。

Scrapy是一個非常好用的爬蟲框架,它不僅提供了一些開箱即用的基礎組件,還提供了強大的自定義功能。

# Scrapy 安裝

Scrapy 官網:https://scrapy.org/

各位同學的電腦環境應該和小編的相差不遠(如果是使用 win10 的話) 安裝過程需要10分鐘左右

安裝命令:

pip install scrapy

由于 Scrapy 依賴了大量的第三方的包,所以在執行上面的命令后并不會馬上就下載 Scrapy ,而是會先不斷的下載第三方包,包括并不限于以下幾種:

pyOpenSSL:Python 用于支持 SSL(Security Socket Layer)的包。 cryptography:Python 用于加密的庫。 CFFI:Python 用于調用 C 的接口庫。 zope.interface:為 Python 缺少接口而提供擴展的庫。 lxml:一個處理 XML、HTML 文檔的庫,比 Python 內置的 xml 模塊更好用。 cssselect:Python 用于處理 CSS 選擇器的擴展包。 Twisted:為 Python 提供的基于事件驅動的網絡引擎包。 ……

如果安裝不成功多試兩次 或者 執行pip install --upgrade pip 后再執行 pip install scrapy

等待命令執行完成后,直接輸入 scrapy 進行驗證。

C:UsersAdministrator>scrapyScrapy 2.4.0 - no active projectAvailable commands:bench Run quick benchmark test...

版本號可能會有差別,不用太在意

如果能正常出現以上內容,說明我們已經安裝成功了。

理論上 Scrapy 安裝出現各種問題才算正常情況

三、Scrapy創建項目

Scrapy 提供了一個命令來創建項目 scrapy 命令,在命令行上運行:

scrapy startproject jianshu

我們創建一個項目jianshu用來爬取簡書首頁熱門文章的所有信息。

jianshu/ scrapy.cfg jianshu/ __init__.py items.py pipelines.py settings.py spiders/ __init__.py ...

spiders文件夾下就是你要實現爬蟲功能(具體如何爬取數據的代碼),爬蟲的核心。在spiders文件夾下自己創建一個spider,用于爬取簡書首頁熱門文章。

scrapy.cfg是項目的配置文件。

settings.py用于設置請求的參數,使用代理,爬取數據后文件保存等。

items.py 自己預計需要爬取的內容

middlewares.py自定義中間件的文件

pipelines.py 管道,保持數據

項目的目錄就用網圖來展示一下吧

一文讀懂python Scrapy爬蟲框架

image Scrapy爬取簡書首頁熱門文章

cd到Jianshu項目中,生成一個爬蟲:

scrapy genspider jianshublog www.jianshu.com

這種方式生成的是常規爬蟲

1)新建jianshuSpider

import scrapyclass JianshublogSpider(scrapy.Spider): name = ’jianshublog’ allowed_domains = [’www.jianshu.com’] start_urls = [’http://www.jianshu.com/’] def parse(self, response): pass

可以看到,這個類里面有三個屬性 name 、 allowed_domains 、 start_urls 和一個parse()方法。

name,它是每個項目唯一的名字,用來區分不同的 Spider。

allowed_domains,它是允許爬取的域名,如果初始或后續的請求鏈接不是這個域名下的,則請求鏈接會被過濾掉。start_urls,它包含了 Spider 在啟動時爬取的 url 列表,初始請求是由它來定義的。

parse,它是 Spider 的一個方法。默認情況下,被調用時 start_urls 里面的鏈接構成的請求完成下載執行后,返回的響應就會作為唯一的參數傳遞給這個函數。該方法負責解析返回的響應、提取數據或者進一步生成要處理的請求。

到這里我們就清楚了,parse() 方法中的 response 是前面的 start_urls中鏈接的爬取結果,所以在 parse() 方法中,我們可以直接對爬取的結果進行解析。

修改USER_AGENT

打開settings.py 添加 UA 頭信息

USER_AGENT = ’Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3493.3 Safari/537.36’

修改`parse`方法解析網頁

我們打開簡書首頁 右鍵檢查(ctrl+shift+I)發現所有的博客頭條都放在類名.note-list .content 的div 節點里面

一文讀懂python Scrapy爬蟲框架

修改jianshublog.py代碼如下

一文讀懂python Scrapy爬蟲框架

jianshublog.py

import scrapy class JianshublogSpider(scrapy.Spider): name = ’jianshublog’ allowed_domains = [’www.jianshu.com’] start_urls = [’http://www.jianshu.com/’] def parse(self, response): blogs = response.css(’.note-list .content’) # 獲取博客列表 for blog in blogs: # 遍歷博客列表 title = blog.css(’.title::text’).extract_first() # 提取標題 link = blog.css(’.title::attr(href)’).extract_first() # 提取鏈接 nickname = blog.css(’.nickname::text’).extract_first() # 提作者 print('標題:',title) # 打印標題 # print('鏈接:', link) # print('作者:', nickname)

最后別忘了執行爬蟲命令

scrapy crawl jianshublog

整個項目就完成啦

下一講我們把文章數據爬取出來,存儲在csv文件里面

到此這篇關于一文讀懂python Scrapy爬蟲框架的文章就介紹到這了,更多相關python Scrapy爬蟲框架內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 破碎机锤头_合金耐磨锤头_郑州宇耐机械工程技术有限公司 | 苏州同创电子有限公司 - 四探针测试仪源头厂家 | 六维力传感器_三维力传感器_二维力传感器-南京神源生智能科技有限公司 | 便携式高压氧舱-微压氧舱-核生化洗消系统-公众洗消站-洗消帐篷-北京利盟救援 | 热处理炉-退火炉-回火炉设备厂家-丹阳市电炉厂有限公司 | pbt头梳丝_牙刷丝_尼龙毛刷丝_PP塑料纤维合成毛丝定制厂_广州明旺 | 青海电动密集架_智能密集架_密集架价格-盛隆柜业青海档案密集架厂家 | 钢格板|镀锌钢格板|热镀锌钢格板|格栅板|钢格板|钢格栅板|热浸锌钢格板|平台钢格板|镀锌钢格栅板|热镀锌钢格栅板|平台钢格栅板|不锈钢钢格栅板 - 专业钢格板厂家 | 智能电表|预付费ic卡水电表|nb智能无线远传载波电表-福建百悦信息科技有限公司 | 微信聊天记录恢复_手机短信删除怎么恢复_通讯录恢复软件下载-快易数据恢复 | 风淋室生产厂家报价_传递窗|送风口|臭氧机|FFU-山东盛之源净化设备 | 东莞韩创-专业绝缘骨架|马达塑胶零件|塑胶电机配件|塑封电机骨架厂家 | 智慧旅游_智慧景区_微景通-智慧旅游景区解决方案提供商 | COD分析仪|氨氮分析仪|总磷分析仪|总氮分析仪-圣湖Greatlake | 检验科改造施工_DSA手术室净化_导管室装修_成都特殊科室建设厂家_医疗净化工程公司_四川华锐 | 滚塑PE壳体-PE塑料浮球-警示PE浮筒-宁波君益塑业有限公司 | 物联网卡_物联网卡购买平台_移动物联网卡办理_移动联通电信流量卡通信模组采购平台? | 股票入门基础知识_股票知识_股票投资大师_格雷厄姆网 | nalgene洗瓶,nalgene量筒,nalgene窄口瓶,nalgene放水口大瓶,浙江省nalgene代理-杭州雷琪实验器材有限公司 | YJLV22铝芯铠装电缆-MYPTJ矿用高压橡套电缆-天津市电缆总厂 | 送料机_高速冲床送料机_NC伺服滚轮送料机厂家-东莞市久谐自动化设备有限公司 | 深圳富泰鑫五金_五金冲压件加工_五金配件加工_精密零件加工厂 | 德国UST优斯特氢气检漏仪-德国舒赐乙烷检测仪-北京泽钏 | 编织人生 - 权威手工编织网站,编织爱好者学习毛衣编织的门户网站,织毛衣就上编织人生网-编织人生 | 山东钢格板|栅格板生产厂家供应商-日照森亿钢格板有限公司 | hc22_hc22价格_hc22哈氏合金—东锜特殊钢 | 河南橡胶接头厂家,河南波纹补偿器厂家,河南可曲挠橡胶软连接,河南套筒补偿器厂家-河南正大阀门 | 西子馋火锅鸡加盟-太原市龙城酉鼎餐饮管理有限公司 | 消电检公司,消电检价格,北京消电检报告-北京设施检测公司-亿杰(北京)消防工程有限公司 | 氧化锆纤维_1800度高温退火炉_1800度高温烧结炉-南京理工宇龙新材料股份有限公司 | 高精度-恒温冷水机-螺杆式冰水机-蒸发冷冷水机-北京蓝海神骏科技有限公司 | 新中天检测有限公司青岛分公司-山东|菏泽|济南|潍坊|泰安防雷检测验收 | 天津蒸汽/热水锅炉-电锅炉安装维修直销厂家-天津鑫淼暖通设备有限公司 | 高铝轻质保温砖_刚玉莫来石砖厂家_轻质耐火砖价格 | 六维力传感器_六分量力传感器_模腔压力传感器-南京数智微传感科技有限公司 | pbt头梳丝_牙刷丝_尼龙毛刷丝_PP塑料纤维合成毛丝定制厂_广州明旺 | 400电话_400电话申请_888元包年_400电话办理服务中心_400VIP网 | 工业PH计|工业ph酸度计|在线PH计价格-合肥卓尔仪器仪表有限公司 济南画室培训-美术高考培训-山东艺霖艺术培训画室 | 过滤器_自清洗过滤器_气体过滤器_苏州华凯过滤技术有限公司 | 农业仪器网 - 中国自动化农业仪器信息交流平台 | led太阳能路灯厂家价格_风光互补庭院灯_农村市政工程路灯-中山华可路灯品牌 |