返回顶部
首页 > 资讯 > 后端开发 > Python >python如何使用Scrapy爬取网易新闻
  • 408
分享到

python如何使用Scrapy爬取网易新闻

2023-06-14 06:06:45 408人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍python如何使用scrapy爬取网易新闻,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 新建项目在命令行窗口下输入scrapy startproject scrapytest, 如下然后就自动

这篇文章主要介绍python如何使用scrapy爬取网易新闻,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

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()  pass

3. 定义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 item

3.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('h2::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频道!

--结束END--

本文标题: python如何使用Scrapy爬取网易新闻

本文链接: https://lsjlt.com/news/268772.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python如何使用Scrapy爬取网易新闻
    这篇文章主要介绍python如何使用Scrapy爬取网易新闻,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 新建项目在命令行窗口下输入scrapy startproject scrapytest, 如下然后就自动...
    99+
    2023-06-14
  • python实现Scrapy爬取网易新闻
    1. 新建项目 在命令行窗口下输入scrapy startproject scrapytest, 如下 然后就自动创建了相应的文件,如下 2. 修改itmes.py文件 打开s...
    99+
    2024-04-02
  • python如何爬取新闻门户网站
    这篇文章主要介绍了python如何爬取新闻门户网站,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。python主要应用领域有哪些1、云计算,典型应用OpenStack。2、WE...
    99+
    2023-06-14
  • python爬虫中如何爬取新闻
    这篇文章主要介绍了python爬虫中如何爬取新闻,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专...
    99+
    2023-06-14
  • python爬虫中如何爬取网页新闻内容
    小编给大家分享一下python爬虫中如何爬取网页新闻内容,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!python可以做什么Python是一种编程语言,内置了许多...
    99+
    2023-06-14
  • 如何用5行python代码爬取新闻网最新资讯
    这期内容当中小编将会给大家带来有关如何用5行python代码爬取新闻网最新资讯,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。大家都知道python语言的强大,以强大的胶水语言著称,其简洁性,实在是令其它语...
    99+
    2023-06-02
  • python爬取新闻门户网站的示例
    项目地址: https://github.com/Python3Spiders/AllNewsSpider 如何使用 每个文件夹下的代码就是对应平台的新闻爬虫 py 文件直接运行 pyd 文件需要,...
    99+
    2022-06-02
    python 爬取网站 python 爬取新闻
  • Python如何爬取汽车之家新闻信息
    这篇文章给大家介绍Python如何爬取汽车之家新闻信息,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。为大家介绍一个爬取汽车之家的新闻标题,链接.以及相关图片并下载的Python项目案例,用基本的BeautifulSou...
    99+
    2023-06-02
  • Python正则抓取网易新闻的方法示例
    本文实例讲述了Python正则抓取网易新闻的方法。分享给大家供大家参考,具体如下: 自己写了些关于抓取网易新闻的爬虫,发现其网页源代码与网页的评论根本就对不上,所以,采用了抓包工具得到了其评论的隐藏地址(每...
    99+
    2022-06-04
    正则 示例 网易新闻
  • 如何使用Scrapy网络爬虫框架
    这篇文章将为大家详细讲解有关如何使用Scrapy网络爬虫框架,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。scrapy 介绍标准介绍Scrapy是一个为了爬取网站数据,提...
    99+
    2024-04-02
  • 如何用Scrapy爬取豆瓣TOP250
    如何用Scrapy爬取豆瓣TOP250,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。最好的学习方式就是输入之后再输出,分享一个自己学习scrapy框架的小案例,方便快速的掌握使...
    99+
    2023-06-04
  • 如何使用scrapy实现增量式爬取
    本篇内容主要讲解“如何使用scrapy实现增量式爬取”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用scrapy实现增量式爬取”吧!1.要爬取的信息在scrapy中,信息通过item来封装...
    99+
    2023-07-02
  • 如何使用Python爬虫爬取网站图片
    这篇文章主要介绍了如何使用Python爬虫爬取网站图片,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。此次python3主要用requests,解析图片网址主要用beautif...
    99+
    2023-06-22
  • Python爬虫实战之使用Scrapy爬取豆瓣图片
    使用Scrapy爬取豆瓣某影星的所有个人图片 以莫妮卡·贝鲁奇为例 首先我们在命令行进入到我们要创建的目录,输入 scrapy startproject banciyuan 创建scrapy项目 创建的项目结构如下...
    99+
    2022-06-02
    Scrapy爬取图片 Python Scrapy
  • Python小程序爬取今日新闻拿走就能用
    目录核心代码爬取标题界面代码软件编译核心代码 requests.get 下载html网页 bs4.BeautifulSoup 分析html内容 from requests imp...
    99+
    2024-04-02
  • 如何使用python爬取整个网站
    要使用Python爬取整个网站,可以使用以下步骤:1. 导入所需的库,例如`requests`和`BeautifulSoup`。``...
    99+
    2023-08-14
    python
  • 【Python】使用Python做简易爬虫爬取B站评论
    目录 一、前言 二、分析网页 三、代码 1.头 2.获取根评论 3.获取子评论 四、总代码 五、总结 一、前言         B站评论没有查找功能,就随手写了一个爬虫爬取B站评论存储到本地txt中         首先需要安装pyth...
    99+
    2023-08-31
    python 爬虫 开发语言
  • python中如何使用Scrapy实现定时爬虫
    这篇文章将为大家详细讲解有关python中如何使用Scrapy实现定时爬虫,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型...
    99+
    2023-06-14
  • 使用python scrapy爬取天气并导出csv文件
    目录爬取xxx天气安装创建scray爬虫项目文件说明开始爬虫补充:scrapy导出csv时字段的一些问题1.字段顺序问题:2.输出csv有空行的问题总结 爬取xxx天气 爬...
    99+
    2024-04-02
  • 怎么在Python中使用Scrapy爬取豆瓣图片
    本篇文章为大家展示了怎么在Python中使用Scrapy爬取豆瓣图片,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.首先我们在命令行进入到我们要创建的目录,输入 scrapy startproje...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作