文本分类(0)——scrapy爬新浪滚动新闻
参考了:
https://www.cnblogs.com/hanjian200ok/p/9524767.html
https://blog.csdn.net/lxg0807/article/details/50179355
https://zhuanlan.zhihu.com/p/24769534
谢谢学长给我的去年他们的爬虫代码
这基本上就是一个从入门到差点放弃的故事。。代码在最下面
页面的选择
这门课需要100万的中文语料来做文本分类,所以还要自己爬一些。
刚开始去尝试爬了新浪每类新闻一进去的页面,结果就是差点放弃。还是那些有规律的URL比较友好。最后就选择了新浪滚动新闻这种 https://news.sina.com.cn/roll/#pageid=153&lid=2509&k=&num=50&page=1
Problem 1
xPath没有获取到任何东西,看了下网页的源码,才发现数据是由Ajax获取的
然后发现了API是
就决定直接爬接口了。
Problem 2
由上面可以知道返回的数据是Jsonp格式的(以前写前端只会json的我完全不知道要怎么弄)。百度了一下尝试了js2py,然而失败。我直接复制的API是这样的:https://feed.mix.sina.com.cn/api/roll/get?pageid=372&lid=2431&k=&num=50&page=1&r=0.8575040651719854&callback=jQuery311021197146034303405_1542196117311&_=1542196117312
返回的数据是下面这样的
可能因为他用的jQuery??(纯猜测)
尝试了一下去掉了callback这个参数,返回的就是纯json了。
Page是页码,lid是新闻的类别,别的就不知道了没试。
附代码
#encoding: utf-8
import scrapy
import re
import sys, os
#sys.setdefaultencoding("utf-8")
from scrapy.selector import Selector
from scrapy.spiders import Spider
from scrapy.http import Request
from third.items import ThirdItem
import json
#import js2py
import time
i=1
base="C:/lyr/Data/tech/"
class techSpider(Spider):name='tech'headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36',}allowed_domains=['tech.sina.com.cn'] start_urls=[]for page in range(1,2000):urls = "https://feed.mix.sina.com.cn/api/roll/get?pageid=153&lid=2515&k=&num=50&page="+str(page)+"&r=0.7643548077821145&callback=&_=1542094996079"start_urls.append(urls)def parse(self,response):items=[]item=ThirdItem()datas=json.loads(response.body)newsList=datas['result']['data']#print('Data:',datas['result']['data'])dataLen=len(datas['result']['data'])for idx in range(dataLen):print("Next:",newsList[idx]["url"])yield Request(url=newsList[idx]["url"], headers=self.headers,callback=self.second_parse)def second_parse(self,response):head = response.xpath(u'//h1[@id="main_title"]/text()').extract()content = ""content_list=response.xpath(u'//div[@id="artibody"]/p/text()').extract()for content_one in content_list:content_one=content_one.replace('\xa0','').replace('\u3000','')content+=content_oneitem=ThirdItem()item['news_body']=contentitem['news_title']=headglobal idir=base + "tech_"+ str(i) + ".txt"print(dir)i = i + 1fp = open(dir , 'w')fp.write(item['news_body'])fp.close()yield item
文本分类(0)——scrapy爬新浪滚动新闻相关推荐
- Android 解析新浪RSS新闻源 问题汇总和解决
项目中要添加RSS源,显示RSS的所有文章,刚好测试的是新浪的新闻RSS源,各种百度之后,找到了这位前辈写的用SAXParser模式解析xml文件的代码,只要参考这个链接,绝对每个小白都可以轻松的解析 ...
- 新浪首页改版,您还去新浪看新闻吗?
新浪首页改版,您还去新浪看新闻吗? 新浪首页改版了,主要体现是"视频上升.博客下降"的思想,原有的首页第一屏中部的"博客"全部取消了,取而代之的是"视 ...
- Python 爬虫实例(7)—— 爬取 新浪军事新闻
我们打开新浪新闻,看到页面如下,首先去爬取一级 url,图片中蓝色圆圈部分 第二zh张图片,显示需要分页, 源代码: # coding:utf-8import json import redis im ...
- java 爬虫(爬新浪新闻) 如何从零开始 - 简书
本文由 简悦 SimpRead 转码, 原文地址 bbs.huaweicloud.com 这篇文章能够快速教你爬取新浪新闻.希望这篇文章对您有所帮助!如果您有想学习的知识或建议,可以给作者留言~ 如何 ...
- DOM--操作元素案例:分时显示不同的图片以及问候语;仿淘宝关闭标签案例;隐藏显示文本框内容;仿新浪注册页面中密码长度的判定
分时显示不同的图片以及问候语 分析: 根据不同的时间来判断,所以需要获取到系统的时间. 利用分支语言来设置不同的图片 需要更换不同的图片,因此需要操作img的元素src 需要一个div来显示不同问候语 ...
- 《王福朋petshop4.0视频教程》新浪视频(高清)
什么是petshop PetShop是一个范例,微软用它来展示.Net企业系统开发的能力.业界有许多.Net与J2EE之争,许多数据是从微软的PetShop和Sun的PetStore而来.这种争论不可 ...
- 记录使用scrapy爬取新闻网站最新新闻存入MySQL数据库,每天定时爬取自动更新
爬取每天更新的新闻,使用scrapy框架,Python2.7,存入MySQL数据库,将每次的爬虫日志和爬取过程中的bug信息存为log文件下.定义bat批处理文件,添加到计划任务程序中,自动爬取. 额 ...
- Python+Scrapy爬取腾讯新闻首页所有新闻及评论
前言 这篇博客写的是实现的一个爬取腾讯新闻首页所有的新闻及其所有评论的爬虫.选用Python的Scrapy框架.这篇文章主要讨论使用Chrome浏览器的开发者工具获取新闻及评论的来源地址. Chrom ...
- Python爬虫实战 | (14) 爬取人民网滚动新闻
在本篇博客中,我们将使用selenium爬取人民网新闻中滚动页面的所有新闻内容,包括题目.时间.来源.正文,并存入MongoDB数据库.网址:http://news.people.com.cn/ 打开 ...
- php爬新浪股票,GitHub - asa1525/SinaFinance-Crawler: 爬取了深沪股票的资讯,包含标题、时间、来源、内容、关键词、链接和股票ID...
第二十一天有回想起来记录了 原先预定的爬虫工作终于引来了终点,尽管最后的去重工作还没有做到真正的完善,但从现在开始我会写下我所做到的内容. 我的任务就是爬取新浪财经每只股票资讯页面下所有的新闻,将日期 ...
最新文章
- 2018 re:Invent回顾篇:前线开发者眼中AWS的创新版图
- Python核心编程(第二版)第六章部分习题代码
- 学会python编程容易吗-Python编程入门难不难
- Windows 10安装pip方法
- [二叉树]二叉搜索树转换为双向链表(剑指Offer26)
- HDMI转MIPI DSI芯片方案TC358779XBG
- python打印不同颜色的字_Python 根据日志级别打印不同颜色的日志的方法示例
- Jvm处理Java Thread 的run方法中抛出异常的流程
- 树莓派(Raspberry Pi)日期时间不准的修正方法
- 2021/7/27 Ubuntu18.04 安装 PCL记录
- 计算机桌面黑底怎么弄,win7怎么设置桌面背景 win7桌面背景变成黑色问题
- 解决eNSP“错误代码40”及AR设备启动失败问题
- oracle job remove,如何删除oracle Job命令实例
- 微信小程序音频的使用:wx.createInnerAudioContext的使用
- 目标检测等相关评价指标(AP AR Average Precision和Average Recall)
- BootStrap 统计分析 浅析
- MacOS M1 安装riscv toolchain
- php 网址缩短,网址缩短
- 计算机无法读光盘,光驱读不出光盘,教您电脑光盘不能被识别怎么解决
- 学习笔记(01):SAS数据分析:从入门到企业实战-SAS PROC步骤I-2
热门文章
- 报错: com.alibaba.druid.pool.DruidDataSource : abandon connection, owner thread
- VNC访问阿里云服务器
- python多线程实现UDP网络通信代码演示
- MarkDown 标题居中
- 史上最健康的养胃时间表
- 阿泰水晶报表补空行(分组)
- 【水晶报表内功心法】--公式、函数与运行时总计 注:(文章来自阿泰博客)
- JS实现网页打印功能
- python的彪悍特性--自省
- android上的壁纸软件,那些简约、精美、极致的安卓软件(APP) 篇四:这7个APP,满足你对壁纸所有的向往...