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

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

python實現Scrapy爬取網易新聞

瀏覽:139日期:2022-06-24 13:40:11
1. 新建項目

在命令行窗口下輸入scrapy startproject scrapytest, 如下

python實現Scrapy爬取網易新聞

然后就自動創建了相應的文件,如下

python實現Scrapy爬取網易新聞

2. 修改itmes.py文件

打開scrapy框架自動創建的items.py文件,如下

# Define here the models for your scraped items## See documentation in:# https://docs.scrapy.org/en/latest/topics/items.htmlimport scrapyclass ScrapytestItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() pass

編寫里面的代碼,確定我要獲取的信息,比如新聞標題,url,時間,來源,來源的url,新聞的內容等

class ScrapytestItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() title = scrapy.Field() timestamp = scrapy.Field() category = scrapy.Field() content = scrapy.Field() url = scrapy.Field() pass3. 定義spider,創建一個爬蟲模板3.1 創建crawl爬蟲模板

在命令行窗口下面 創建一個crawl爬蟲模板(注意在文件的根目錄下面,指令檢查別輸入錯誤,-t 表示使用后面的crawl模板),會在spider文件夾生成一個news163.py文件

scrapy genspider -t crawl codingce news.163.com

然后看一下這個‘crawl’模板和一般的模板有什么區別,多了鏈接提取器還有一些爬蟲規則,這樣就有利于我們做一些深度信息的爬取

import scrapyfrom scrapy.linkextractors import LinkExtractorfrom scrapy.spiders import CrawlSpider, Ruleclass CodingceSpider(CrawlSpider): name = ’codingce’ allowed_domains = [’163.com’] start_urls = [’http://news.163.com/’] rules = ( Rule(LinkExtractor(allow=r’Items/’), callback=’parse_item’, follow=True), ) def parse_item(self, response): item = {} #item[’domain_id’] = response.xpath(’//input[@id='sid']/@value’).get() #item[’name’] = response.xpath(’//div[@id='name']’).get() #item[’description’] = response.xpath(’//div[@id='description']’).get() return item3.2 補充知識:selectors選擇器

支持xpath和css,xpath語法如下

/html/head/title/html/head/title/text()//td (深度提取的話就是兩個/)//div[@class=‘mine’]3.3. 分析網頁內容

在谷歌chrome瀏覽器下,打在網頁新聞的網站,選擇查看源代碼,確認我們可以獲取到itmes.py文件的內容(其實那里面的要獲取的就是查看了網頁源代碼之后確定可以獲取的)

確認標題、時間、url、來源url和內容可以通過檢查和標簽對應上,比如正文部分

主體

python實現Scrapy爬取網易新聞

標題

python實現Scrapy爬取網易新聞

時間

python實現Scrapy爬取網易新聞

分類

python實現Scrapy爬取網易新聞

4. 修改spider下創建的爬蟲文件4.1 導入包

打開創建的爬蟲模板,進行代碼的編寫,除了導入系統自動創建的三個庫,我們還需要導入news.items(這里就涉及到了包的概念了,最開始說的?init?.py文件存在說明這個文件夾就是一個包可以直接導入,不需要安裝)

注意:使用的類ExampleSpider一定要繼承自CrawlSpider,因為最開始我們創建的就是一個‘crawl’的爬蟲模板,對應上

import scrapyfrom scrapy.linkextractors import LinkExtractorfrom scrapy.spiders import CrawlSpider, Rulefrom scrapytest.items import ScrapytestItemclass CodingceSpider(CrawlSpider): name = ’codingce’ allowed_domains = [’163.com’] start_urls = [’http://news.163.com/’] rules = ( Rule(LinkExtractor(allow=r’.*.163.com/d{2}/d{4}/d{2}/.*.html’), callback=’parse’, follow=True), ) def parse(self, response): item = {} content = ’<br>’.join(response.css(’.post_content p::text’).getall()) if len(content) < 100: return return item

Rule(LinkExtractor(allow=r’..163.com/d{2}/d{4}/d{2}/..html’), callback=‘parse’, follow=True), 其中第一個allow里面是書寫正則表達式的(也是我們核心要輸入的內容),第二個是回調函數,第三個表示是否允許深入

最終代碼

from datetime import datetimeimport reimport scrapyfrom scrapy.linkextractors import LinkExtractorfrom scrapy.spiders import CrawlSpider, Rulefrom scrapytest.items import ScrapytestItemclass CodingceSpider(CrawlSpider): name = ’codingce’ allowed_domains = [’163.com’] start_urls = [’http://news.163.com/’] rules = ( Rule(LinkExtractor(allow=r’.*.163.com/d{2}/d{4}/d{2}/.*.html’), callback=’parse’, follow=True), ) def parse(self, response): item = {} content = ’<br>’.join(response.css(’.post_content p::text’).getall()) if len(content) < 100: return title = response.css(’h1::text’).get() category = response.css(’.post_crumb a::text’).getall()[-1] print(category, '=======category') time_text = response.css(’.post_info::text’).get() timestamp_text = re.search(r’d{4}-d{2}-d{2} d{2}:d{2}:d{2}’, time_text).group() timestamp = datetime.fromisoformat(timestamp_text) print(title, '=========title') print(content, '===============content') print(timestamp, '==============timestamp') print(response.url) return item

python實現Scrapy爬取網易新聞

到此這篇關于python實現Scrapy爬取網易新聞的文章就介紹到這了,更多相關python Scrapy爬取網易新聞內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 不锈钢螺丝 - 六角螺丝厂家 - 不锈钢紧固件 - 万千紧固件--紧固件一站式采购 | 空调风机,低噪声离心式通风机,不锈钢防爆风机,前倾皮带传动风机,后倾空调风机-山东捷风风机有限公司 | 合肥风管加工厂-安徽螺旋/不锈钢风管-通风管道加工厂家-安徽风之范 | 工业电炉,台车式电炉_厂家-淄博申华工业电炉有限公司 | 生鲜配送系统-蔬菜食材配送管理系统-连锁餐饮订货配送软件-挪挪生鲜供应链管理软件 | 展厅装修公司|企业展厅设计|展厅制作|展厅搭建—广州展厅装饰公司 | TYPE-C厂家|TYPE-C接口|TYPE-C防水母座|TYPE-C贴片-深圳步步精 | 不锈钢钢格栅板_热浸锌钢格板_镀锌钢格栅板_钢格栅盖板-格美瑞 | PTFE接头|聚四氟乙烯螺丝|阀门|薄膜|消解罐|聚四氟乙烯球-嘉兴市方圆氟塑制品有限公司 | 滚塑PE壳体-PE塑料浮球-警示PE浮筒-宁波君益塑业有限公司 | 京马网,京马建站,网站定制,营销型网站建设,东莞建站,东莞网站建设-首页-京马网 | 亚洲工业智能制造领域专业门户网站 - 亚洲自动化与机器人网 | 自动气象站_气象站监测设备_全自动气象站设备_雨量监测站-山东风途物联网 | 不锈钢水箱厂家,不锈钢保温水箱-山东桑特供水设备 | SRRC认证_电磁兼容_EMC测试整改_FCC认证_SDOC认证-深圳市环测威检测技术有限公司 | HV全空气系统_杭州暖通公司—杭州斯培尔冷暖设备有限公司 | 流程管理|流程管理软件|企业流程管理|微宏科技-AlphaFlow_流程管理系统软件服务商 | 空气能暖气片,暖气片厂家,山东暖气片,临沂暖气片-临沂永超暖通设备有限公司 | 能量回馈_制动单元_电梯节能_能耗制动_深圳市合兴加能科技有限公司 | 武汉EPS线条_EPS装饰线条_EPS构件_湖北博欧EPS线条厂家 | 雪花制冰机(实验室雪花制冰机)百科 | 讲师宝经纪-专业培训机构师资供应商_培训机构找讲师、培训师、讲师经纪就上讲师宝经纪 | 可程式恒温恒湿试验箱|恒温恒湿箱|恒温恒湿试验箱|恒温恒湿老化试验箱|高低温试验箱价格报价-广东德瑞检测设备有限公司 | 集装箱展厅-住人集装箱住宿|建筑|房屋|集装箱售楼处-山东锐嘉科技工程有限公司 | Copeland/谷轮压缩机,谷轮半封闭压缩机,谷轮涡旋压缩机,型号规格,技术参数,尺寸图片,价格经销商 CTP磁天平|小电容测量仪|阴阳极极化_双液系沸点测定仪|dsj电渗实验装置-南京桑力电子设备厂 | 不锈钢反应釜,不锈钢反应釜厂家-价格-威海鑫泰化工机械有限公司 不干胶标签-不干胶贴纸-不干胶标签定制-不干胶标签印刷厂-弗雷曼纸业(苏州)有限公司 | 四川实木门_成都实木门 - 蓬溪聚成门业有限公司| 伊卡洛斯软装首页-电动窗帘,别墅窗帘,定制窗帘,江浙沪1000+别墅窗帘案例 | 全自动包装机_灌装机生产厂家-迈驰包装设备有限公司 | 细砂提取机,隔膜板框泥浆污泥压滤机,螺旋洗砂机设备,轮式洗砂机械,机制砂,圆锥颚式反击式破碎机,振动筛,滚筒筛,喂料机- 上海重睿环保设备有限公司 | 实战IT培训机构_IT培训班选大学生IT技术培训中心_中公优就业 | 汽车润滑油厂家-机油/润滑油代理-高性能机油-领驰慧润滑科技(河北)有限公司 | 湖南专升本-湖南省专升本报名-湖南统招专升本考试网 | 液氮罐_液氮容器_自增压液氮罐-北京君方科仪科技发展有限公司 | 磁力链接搜索神器_BT磁力狗_CILIMAO磁力猫_高效磁力搜索引擎2024 | 玻璃钢板-玻璃钢防腐瓦-玻璃钢材料-广东壹诺 | 河南15年专业网站建设制作设计,做网站就找郑州启凡网络公司 | 欧美日韩国产一区二区三区不_久久久久国产精品无码不卡_亚洲欧洲美洲无码精品AV_精品一区美女视频_日韩黄色性爱一级视频_日本五十路人妻斩_国产99视频免费精品是看4_亚洲中文字幕无码一二三四区_国产小萍萍挤奶喷奶水_亚洲另类精品无码在线一区 | 哈尔滨发电机,黑龙江柴油发电机组-北方星光 | 货车视频监控,油管家,货车油管家-淄博世纪锐行电子科技 | 精准猎取科技资讯,高效阅读科技新闻_科技猎 |