新浪滚动新闻爬虫代码

import time

from scrapy_plus.core.spider import Spider from scrapy_plus.http.request import Request import js2py class SinaGunDong(Spider): name = "sina" headers = { "Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Accept-Language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7", "Cache-Control": "no-cache", "Connection": "keep-alive", "Cookie": "UOR=www.google.com,www.sina.com.cn,; SGUID=1520816292777_83076650; SINAGLOBAL=211.103.136.242_1520816292.736990; SUB=_2AkMt-V_2f8NxqwJRmPEQy2vmZYx_zwjEieKbpa4tJRMyHRl-yD83qnIJtRB6BnlxGSLw2fy6O04cZUKTsCZUeiiFEsZE; SUBP=0033WrSXqPxfM72-Ws9jqgMF55529P9D9WhpFUZmqbYYLueonGrZIL2c; U_TRS1=0000001a.e268c0.5aaa0d39.35b0731a; lxlrttp=1521688012; Apache=223.72.62.219_1522208561.132697; ULV=1522208952476:6:6:3:223.72.62.219_1522208561.132697:1522208561158; U_TRS2=000000db.81c2323e.5abca69b.ad269c11; ArtiFSize=14; rotatecount=1; hqEtagMode=1", # "Host": "roll.news.sina.com.cn", 这里host必须禁用掉 "Pragma": "no-cache", "Referer": "http://roll.news.sina.com.cn/s/channel.php?ch=01", "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36", } def start_requests(self): while True: # 需要发起这个请求,才能获取到列表页数据,并且返回的是一个js语句 url = "http://roll.news.sina.com.cn/interface/rollnews_ch_out_interface.php?col=89&spec=&type=&ch=&k=&offset_page=0&offset_num=0&num=120&asc=&page=1&r=0.5559616678192825" yield Request(url, parse='parse', filter=False) time.sleep(60) # 每60秒发起一次请求 def parse(self, response): '''响应体数据是js代码''' # 使用js2py模块,执行js代码,获取数据 ret = js2py.eval_js(response.body.decode("gbk")) # 对网站分析发现,数据编码格式是gbk的,因此需要先进行解码 for news in ret.list: # yield Request(news["url"], headers=self.headers, parse='parse_detail', meta={"type": news["channel"]["title"]}) def parse_detail(self, response): # print(response.body) response.body = response.body.decode("utf-8") # 部分页面无法正确解码,因此在这里手动进行解码操作 title = response.xpath("//h1[@class='main-title']/text()")[0] pub_date = response.xpath("//span[@class='date']/text()")[0] try: author = response.xpath("//div[@class='date-source']//a/text()")[0] # 由于作者的提取,有两种格式,因此这里使用一个异常捕获来进行判断 except IndexError: author = response.xpath("//div[@class='date-source']//span[contains(@class,'source')]/text()")[0] content = response.xpath("//div[@class='article']//text()") # 多个 每一个代表一段 image_links = response.xpath("//div[@class='article']//img/@src") # 图片链接有多个 item = { "content": content, # 正文 "image_links":image_links, # 图片链接 "title": title, # 标题 "pub_date":pub_date, # 发布日期 "author": author, # 作者 "url": response.url, # 文章链接 "type": response.meta["type"], # 文章所属分类 } print(item) yield item

转载于:https://www.cnblogs.com/hanjian200ok/p/9524767.html

新浪新闻采集程序天宇版 更新日志: v1.2 1、修复首页及文章页错误! 新浪滚动新闻采集程序天宇版简介 新浪新闻采集程序天宇版采用php进行开发,能自动对新浪新闻进行采集。 占用空间小,建站成本低,无需等待,马上就可以拥有海量网站数据; 免更新免维护,管理方便,操作简单,实现全站后台管理的全自动采集; 实现内容页URL路径伪静态功能,让各大搜索引擎收录更加友好; 新浪滚动新闻采集程序天宇版功能介绍: 1.关键词内链 VIP 2.内容过滤 VIP 3.伪原创词汇 VIP 4.模板独立化(支持自己编写模板) 5.支持自定义路径伪静态(更好的搜索引擎亲和力)【无组件支持伪静态】 6.增加强大的缓存功能(极大降低UPU资源占用率) 7.增加蜘蛛访问记录(实时查看各大搜素引擎蜘蛛对网站爬行动态) 8.增加畅言评论功能 9.增加手机版VIP(自动识别手机与PC机访问切换) 10.自动采集百度搜索相关关键词(非常利于SEO) 后台登录admin/ 账号密码都为admin 上传后请及时更改后台登录路径(给admin文件夹重命名) 后续更新敬请期待。。。 广告不是一成不变的客户也可以自主在模板里直接添加广告代码 模板位置:/templets/default/ 带m的为手机版模板 新浪滚动新闻采集程序天宇版前台页面 新浪滚动新闻采集程序天宇版后台管理 后台登录admin/ 账号密码都为admin 后台页面 相关阅读 同类推荐:站长常用源码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值