python抽取指定url页面的title_Python使用scrapy爬虫,爬取今日头条首页推荐新闻
爬取今日头条https://www.toutiao.com/首页推荐的新闻,打开网址得到如下界面
查看源代码你会发现
全是js代码,说明今日头条的内容是通过js动态生成的。
用火狐浏览器F12查看得知
得到了今日头条的推荐新闻的接口地址:https://www.toutiao.com/api/pc/focus/
单独访问这个地址得到
此接口得到的数据格式为json数据
我们用scrapy+selenium+PhantomJS的方式获取今日头条推荐的内容
下面是是scrapy中最核心的代码,位于spiders中的toutiao_example.py
import scrapyimport jsonfrom selenium import webdriverfrom selenium.webdriver.common.desired_capabilities import DesiredCapabilitiesimport timeimport re '''遇到不懂的问题?Python学习交流群:821460695满足你的需求,资料都已经上传群文件,可以自行下载!'''class ToutiaoExampleSpider(scrapy.Spider): name = 'toutiao_example' allowed_domains = ['toutiao.com'] start_urls = ['https://www.toutiao.com/api/pc/focus/'] ###今日头条焦点的api接口 def parse(self, response): conten_json=json.loads(response.text) conten_news=conten_json['data'] ###从json数据中抽取data字段数据,其中data字段数据里面包含了pc_feed_focus这个字段,其中这个字段包含了:新闻的标题title,链接url等信息 for aa in conten_news['pc_feed_focus']: title=aa['title'] link_url='https://www.toutiao.com'+aa['display_url'] ###如果写(www.toutiao.com'+aa['display_url'])会报错,加上https://,(https://www.toutiao.com'+aa['display_url'])则不会报错! link_url_new=link_url.replace('group/','a')###把链接https://www.toutiao.com/group/6574248586484122126/,放到浏览器中,地址会自动变成https://www.toutiao.com/a6574248586484122126/这个。所以我们需要把group/ 替换成a yield scrapy.Request(link_url_new, callback=self.next_parse) def next_parse(self, response): dcap = dict(DesiredCapabilities.PHANTOMJS) # 设置useragent信息 dcap['phantomjs.page.settings.userAgent'] = ( 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:25.0) Gecko/20100101 Firefox/25.0 ') # 根据需要设置具体的浏览器信息 driver = webdriver.PhantomJS(desired_capabilities=dcap) #封装浏览器信息) # 指定使用的浏览器, #driver.set_page_load_timeout(5) # 设置超时时间 driver.get(response.url)##使用浏览器请求页面 time.sleep(3)#加载3秒,等待所有数据加载完毕 title=driver.find_element_by_class_name('title').text ###.text获取元素的文本数据 content1=driver.find_element_by_class_name('abstract-index').text###.text获取元素的文本数据 content2=driver.find_element_by_class_name('abstract').text###.text获取元素的文本数据 content=content1+content2 print(title,content,6666666666666666) driver.close() #data = driver.page_source# 获取网页文本 #driver.save_screenshot('1.jpg') # 系统截图保存
运行代码我们得到结果为标题加内容呈现方式如下
python抽取指定url页面的title_Python使用scrapy爬虫,爬取今日头条首页推荐新闻相关推荐
- python抽取指定url页面的title_Python新手写爬虫全过程记录分析
目标网站:http://bohaishibei.com/post/category/main/(一个很有趣的网站,一段话配一个图,老有意思了-)网站形式如下: 目标:把大的目标分为几个小的目标.因为第 ...
- 利用Ajax爬取今日头条头像,街拍图片。关于崔庆才python爬虫爬取今日头条街拍内容遇到的问题的解决办法。
我也是初学爬虫,在看到崔庆才大佬的爬虫实战:爬取今日头条街拍美图时,发现有些内容过于陈旧运行程序时已经报错,网页的源代码早已不一样了.以下是我遇到的一些问题. 1.用开发者选项筛选Ajax文件时预览看 ...
- python爬虫爬取今日头条_python 简单爬取今日头条热点新闻(一)
今日头条如今在自媒体领域算是比较强大的存在,今天就带大家利用python爬去今日头条的热点新闻,理论上是可以做到无限爬取的: 在浏览器中打开今日头条的链接,选中左侧的热点,在浏览器开发者模式netwo ...
- Python 爬取今日头条的图片新闻
工具 from urllib.parse import urlencode import requests 网页 进入今日头条,搜索图片新闻 往下进行网页刷新的时候,按f12选择xhr进行筛选可以看到 ...
- python爬虫爬取今日头条_Python爬虫实战入门五:获取JS动态内容—爬取今日头条...
之前我们爬取的网页,多是HTML静态生成的内容,直接从HTML源码中就能找到看到的数据和内容,然而并不是所有的网页都是这样的. 有一些网站的内容由前端的JS动态生成,由于呈现在网页上的内容是由JS生成 ...
- python爬虫爬取今日头条_爬取今日头条头条号文章数据
0,背景介绍 最近想爬取一些今日头条的文章浏览数据,分析哪些头条号做的好,那些做的不好. 今日头条 比如上图的阅读数,评论数以及文章标题,通过这些数据进行分析. 于是展开了艰难的爬虫探索之旅 第一目标 ...
- python爬取今日头条后台数据_爬虫爬取今日头条数据代码实现
课程链接 讲师的公众号文章:今日头条数据抓取及持久化(完整代码版,含IP和用户代理)mp.weixin.qq.com 课程代码 抓取并持久化user-agent工具utils.py 对于爬虫工具,需 ...
- python爬虫-爬取今日头条(图集)
1.工具使用 python的request包和json包 fiddle抓包工具 2.请求分析 我们访问该页面,抓取请求,得到如下结果. 不难发现,在图片加载之前数据量最大的就是search_conte ...
- python爬取今日头条专栏_[python3]今日头条图片爬取
前言 代码设计流程,先模拟ajax发送搜索"街拍美女",提取返回json里面的article_url,再访问article_url,提取article_url响应的图片url,访问 ...
最新文章
- 敲代码括号技巧_阅码神奇Souceinsight使用小技巧总结
- P4722 【模板】最大流
- Prim算法求权数和,POJ(1258)
- QML基础类型之geocircle
- leetcode-237-删除链表中的节点
- 【机器学习】机器学习从零到掌握之十三 -- 教你理解Logistics回归之梯度上升算法
- JavaScript 演练(4). 回调函数
- 如果地球突然停止转动,那么接下来会发生什么?
- 硬件创业者们,如何避免掉到供应链的大坑里爬不出来
- Linux下如何查看定位当前正在运行的Nginx的配置文件
- nfs文件共享服务器搭建详解
- python好玩的代码-我珍藏的一些好的Python代码,技巧
- Spring实现统一捕获接口层异常与邮件警报
- 如何用定积分求椭圆的周长_怎么用微积分求椭圆的周长?
- java阿法狗国际象棋_[转帖]被阿法狗和AlphaZero刷屏之后,聊聊国际象棋和中国象棋AI...
- 什么是JSP,JSP的运行原理是什么?
- 桌面上计算机图标被误删,电脑桌面图标被误删?两个方法轻松帮你找回,根本不需要重装系统...
- 爬虫练习 -- 链家
- 【Golang之路】——slice总结
- OpenCASCADE入门指南
热门文章
- 项目运行报错java.sql.SQLSyntaxErrorException: Table ‘sell.hibernate_sequence‘ doesn‘t exist
- android系统中与内存有关的文件及路径
- Vue + Spring Boot 学习笔记01:实现用户登录功能
- VB讲课笔记02:VB程序开发环境
- seaborn pairplot ax_强者致胜 AX电竞叛客RTX3070显卡发布_
- 2017.7.27 排列perm 思考记录
- 【英语学习】【Level 07】U06 First Time L1 My very first trip
- 【英语学习】【Daily English】U14 Transportation L02 I'm afraid that you're going in the wrong direction.
- Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - SSE扩展(2) - SSE程序设计环境概述
- seo 伪原创_seo伪原创工具(解析新云查新型伪原创模式工具)