已经安装scrapy的跳过

1.scrapy的安装和项目的创建

安装scrapy

pip install scrapy

项目的创建

在Termianl中输入scrapy startproject 项目名字回车,然后cd 项目名字回车

创建一个爬虫文件输入scrapy genspider  文件名  地址 例如(scrapy genspider wy www.com)

2.流程

3项目实施

我们需要获取国内国际等模块的url,打开网站,按F12或者右击鼠标检查,定位到国内。我们需要获取的就是a标签下的herf的属性值。

获取各模块的url,我们可以知道所有的模块都在ul标签下,这就需要我们获取ul标签下所有的li标签,然后进行xpath解析出各个模块的url.

处理代码:

    def parse(self, response):#获取ul标签下所有的li标签lists=response.xpath('//*[@id="index2016_wrap"]/div[2]/div[2]/div[2]/div[2]/div/ul/li')for num in range(1,3):#获取需要访问板块的urlmode_url=lists[num].xpath('./a/@href').extract_first()self.mode_urls.append(mode_url)#依次访问每个板块for url in self.mode_urls:yield scrapy.Request(url,callback=self.title)

由于接下来的的请求是动态加载,我们需要实实例化一个浏览器对象,然后在中间件中修改响应对应。路径为自己浏览器驱动的地址

实例化代码:

    def __init__(self):#初始化一个webself.web=webdriver.Firefox(executable_path='C:/Users/Administrator/PycharmProjects/venv/Scripts/geckodriver.exe')

middlewares.py文件中代码:

    def process_response(self, request, response, spider):web=spider.webif request.url in spider.mode_urls:web.get(request.url)time.sleep(2)page_text=web.page_source#包含动态加载数据#针对定位到这些response进行篡改#s实例化一个新的响应对象(符合需求:包含动态加载出的新闻数据) 替代原来旧的响应对象new_response=HtmlResponse(url=request.url,body=page_text,encoding='utf-8',request=request)return new_responseelse:return response

解析数据

所有的新闻标题在选中的div标签下,复制xpath,解析出文章的标题和详情页的url

获取标题代码:

  def title(self,response):#获取包含每个标题的div标签detail_list=response.xpath('/html/body/div/div[3]/div[3]/div[1]/div[1]/div/ul/li/div/div')for it in range(1,6):#获取标题和文章的urltitle=detail_list[it].xpath('./div/div[1]/h3/a/text()').extract_first()detail_url=detail_list[it].xpath('./div/div[1]/h3/a/@href').extract_first()#进行管道存储# item=WyItem()# item['title']=title#yield scrapy.Request(url=detail_url, callback=self.content,meta={'item':item})yield scrapy.Request(url=detail_url,callback=self.content)

获取文章

    def content(self,response):#获取文章内容#normalize-space()去除文本中的前后空格和回车contents=response.xpath('normalize-space(/html/body/div[3]/div[1]/div[3]/div[2])').extract_first()print(contents)# item=response.meta['item']# item['contents']=contents# yield item

最后关闭浏览器

    def closed(self,spider):#关闭浏览器self.web.quit()

setting文件设置

完整代码图

未展开

运行代码:scrapy crawl 你的爬虫文件名

运行效果图:

最后有什么疑问请在评论区留言吧!

使用scrapy简单爬取网易新闻相关推荐

  1. scrapy获取a标签的连接_python爬虫——基于scrapy框架爬取网易新闻内容

    python爬虫--基于scrapy框架爬取网易新闻内容 1.需求[前期准备] 2.分析及代码实现(1)获取五大板块详情页url(2)解析每个板块(3)解析每个模块里的标题中详情页信息 点击此处,获取 ...

  2. 19. python爬虫——基于scrapy框架爬取网易新闻内容

    python爬虫--基于scrapy框架爬取网易新闻内容 1.需求 [前期准备] 2.分析及代码实现 (1)获取五大板块详情页url (2)解析每个板块 (3)解析每个模块里的标题中详情页信息 1.需 ...

  3. 利用scrapy框架爬取网易新闻排行榜

    wyxw.py中代码 # -*- coding: utf-8 -*- import scrapy from ..items import WyxwItemclass WyxwSpider(scrapy ...

  4. Python爬取网易新闻,就是这么简单!

    此文属于入门级级别的爬虫,老司机们就不用看了. 本次主要是爬取网易新闻,包括新闻标题.作者.来源.发布时间.新闻正文. 首先我们打开163的网站,我们随意选择一个分类,这里我选的分类是国内新闻.然后鼠 ...

  5. 【python 爬虫】 scrapy 入门--爬取百度新闻排行榜

    scrapy 入门–爬取百度新闻排行榜 环境要求:python2/3(anaconda)scrapy库 开发环境:sublime text + windows cmd 下载scrapy(需要pytho ...

  6. 如何利用python爬取网易新闻

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: LSGOGroup PS:如有需要Python学习资料的小伙伴可以 ...

  7. python爬网易新闻_爬虫基本介绍 python3 爬虫爬取网易新闻排行榜

    爬虫基本介绍 1. 什么是爬虫? 爬虫是请求⽹网站并提取数据的⾃自动化程序 2. 爬虫的基本流程 发起请求 通过HTTP库向目标站点发起请求,即发送一个Request,请求可以包含额外的headers ...

  8. Python+beautifulsoup+requests 爬取网易新闻评论

    前段时间在看处理数据相关的书籍,实践中需要一些网上评论的文本数据集,所以想到爬取网易新闻底下的评论.本来想着Python+beautifulsoup(解析)+requests(抓取),最后存储在txt ...

  9. python爬取热门新闻每日排行_爬取网易新闻排行榜

    #网络爬虫之最基本的爬虫:爬取[网易新闻排行榜](http://news.163.com/rank/) **一些说明:** * 使用urllib2或requests包来爬取页面. * 使用正则表达式分 ...

最新文章

  1. java junit 运行_appium+java+junit demo运行
  2. 交换基本数据类型的方法swap,并影响到主方法
  3. Hyperledger Fabric 私有数据(3)交易流程
  4. epoll 接口以及原理说明
  5. 用java爬虫来提高CSDN博客访问量,浏览量
  6. 还被python收智商税?做大数据的朋友告诉我月薪2w的方法
  7. Rabbit MQ 安装
  8. dis 密集光流_密集光流估计的自监督注意力机制
  9. 解决“ssh服务器拒绝了密码 请再试一次”问题
  10. HTMLifier将scratch游戏打包为html文件
  11. input中使用pattern属性
  12. Mint-ui MessageBox.confirm 确定和取消事件
  13. java的if 、if else、while、do while、switch、for执行语句
  14. MacOS 安装跨平台加密工具 VeraCrypt
  15. 【论文阅读】2021中国法研杯司法考试数据集研究(CAIL2021)
  16. 中国数据标注公司排名前十强有哪些?
  17. 导数的几何意义和物理意义, 求曲线y=f(x) 在相应点处的切线方程,法线方程
  18. PostGIS 笔记
  19. 基于Python+Open CV的手势识别算法设计
  20. VR全景制作拍摄方法教程

热门文章

  1. 永洪bi日志清理配置
  2. 中规中矩的Spring事件监听
  3. BZOJ.4598.[SDOI2016]模式字符串(点分治 Hash)
  4. dosbox 自动运行_如何使用DOSBox在新计算机上运行90年代的老旧游戏
  5. 浅析微信头脑王者答题小程序源码功能模块与价格之间关系
  6. Burnside引理Pólya定理
  7. 墙裂推荐!Pycharm里6大神器插件!
  8. Scrapy 豆瓣搜索页爬虫
  9. android 开发框架 andbase,Android快速开发框架andbase
  10. python输出希腊字母