最新的今日头条美图爬取(这真是一篇很烂的博客)
接下来我们就介绍一下对今日头条的爬取:
对AJAX的爬取我也不是太熟,但是我想了以下这应该是最新的了,我也在网上搜索到不少今日头条的爬去,但是跟新过后就很难找到能顺利爬取美图的博客了,所以我把我的发现写上来,希望能帮助到像我一样的人。
话不多说,上干货了:
打开今日头条网页,打开图集然后F12,点击XHR然后刷新页面就能看到下面的内容了。
首先分析页面:
由于请求类型为
x-requested-with:
XMLHttpRequest
分析为AJAX爬取
以上为一些参数;
分析网页过后发现是可以用一个简单的get方法获取的:
本次要用到的是requests库,json库,re库:
对美图页面进行请求首先构造参数,并将url生成新的url然后用try—except进行排错,返回一个html.text:
import requests
import re
from urllib.parse import urlencode
import json
import
def get_url(offset):##获取一页美图params = {'offset': offset ,'format': 'json' ,'autoload': 'true' ,'keyword': '街拍' ,'count': '20' ,'cur_tab': '3' ,'from': 'gallery'}url="https://www.toutiao.com/search_content/?"+urlencode(params)response=requests.get(url)return response.text
然后对html.text进行一个解析生成对每一个图集访问的url,里面用到一些正则的非贪婪匹配,这个很重要,也困扰了我:
def get_data(html):##获取一页的data数据并提取出美图页面的URLtry:print(html)html = json.loads (html)print(type(html))datas = html.get ('data')s=[data.get('share_url') for data in datas]if s:return selse:print("请求data失败")except:print("请求失败")
def get_newurl(url):##生成一个新的urldemo=re.compile('group/(.*?)/',re.S)demos=demo.search(url)url="https://www.toutiao.com/a"+demos.group(1)+"/"print(url)return url
然后分析详情页,打开F12然后找到源码,发现每一个图集的子链接都在源码所存储的一个经过脚本语言生成的字符串里,然后提取字符串,对字符串进行一系列解析,其中用的正则,和json.loads()方法:
def pase_url(url):##对url进行请求,并提取出字符串,然后解析字符串,然后提取图片的urltry:response=requests.get(url)response.encoding=response.apparent_encodingdemo = re.compile ('gallery: JSON.parse\("(.*?)"\)' , re.S)demos = demo.search (response.text)print (demos.group(1))iteam=demos.group(1)print(type(iteam))s=json.loads(json.loads('"'+iteam+'"'))print(type(s))print(s.get('sub_images'))for imsges in s.get('sub_images'):ss=imsges.get('url')print(ss)return iteamexcept:print("请求详情页错误")
然后用写一个主函数,遍历所有的url然后写入文件就可以成功保存下来了,以下的东西是刚赶的,很粗糙,希望读者能自己完善:
def save_images(url):s=requests.get(url)with open('meitu','wb') as f:f.write(s.content)f.close()def main():html=get_url(0)urllist=get_data(html)for url in urllist:url=get_newurl(url)save_images(url)lxml=pase_url(url)
main()
这样我们的头条爬取就成功了
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
最后我要说明一下,我也是菜鸟,我上面写的东西大概也就能算个半成品,也希望大家多多提问!不过也是我花心思取亲自做的,自己摸索的,当然页面的分析还是在书上学的!
----------------------------------------------------------------------------------------------------------------------------------还有,今日头条的爬取我遇到的困难我一一列出来:
一:
在用正则提取字符串的时候我花了很多时间,当然也不算是很多,因为我一遇到困难就先放下玩游戏去了。
也就是这一部分内容:
demo = re.compile ('gallery: JSON.parse\("(.*?)"\)' , re.S)
demos = demo.search (response.text)
demo=re.compile('group/(.*?)/',re.S)
demos=demo.search(url)
因为正则的贪婪匹配和非贪婪匹配困扰了我很久这个正则的点睛之笔在转义符上面,需要深入了解一下。
二:
就是url的生成,这个我只用了一点时间就想出来了,其实也不算是什么困难,就是提取出来的url不能用要生成用新的url,这个其实也蛮重要的,就是提醒以下读者,立体的思维
三:
就是从正则表达式中提取出来的字符串还需要解析再解析,然后还原,这个困扰了我,在我玩累了之后偶然发现这样的一篇博客用这样的方法解决了问题
s=json.loads(json.loads('"'+iteam+'"'))
这个真的太重要了!
基本上就这么多,其余的报错系统我就不写了,半成品让我们自己去摸索了,啊哈哈哈哈。(其实是我太懒了。。。)
注意:
以上还附有我的测试代码,像parse_url()中的好多print()是为了让我看到实例的代码,其实没什么作用,最后,等我玩累了我应该会写一个完整的,像样的代码到博客上来把!哈哈,就这样吧,欢迎交流!
完整的单页爬取我已经补足在这下面自取:
https://blog.csdn.net/weidaxueshen1/article/details/80758939
最新的今日头条美图爬取(这真是一篇很烂的博客)相关推荐
- python爬虫今日头条_python 简单爬取今日头条热点新闻(
今日头条如今在自媒体领域算是比较强大的存在,今天就带大家利用python爬去今日头条的热点新闻,理论上是可以做到无限爬取的: 在浏览器中打开今日头条的链接,选中左侧的热点,在浏览器开发者模式netwo ...
- python爬虫爬取今日头条_python 简单爬取今日头条热点新闻(一)
今日头条如今在自媒体领域算是比较强大的存在,今天就带大家利用python爬去今日头条的热点新闻,理论上是可以做到无限爬取的: 在浏览器中打开今日头条的链接,选中左侧的热点,在浏览器开发者模式netwo ...
- python爬虫今日头条_python 简单爬取今日头条热点新闻(一)
今日头条如今在自媒体领域算是比较强大的存在,今天就带大家利用python爬去今日头条的热点新闻,理论上是可以做到无限爬取的: 在浏览器中打开今日头条的链接,选中左侧的热点,在浏览器开发者模式netwo ...
- python+selenium爬虫搜索今日头条文章并爬取文章相关数据(点赞、评论等)
首先需要一个登录模块,由于今日头条需要登陆就可以搜索,因此这里不登陆,只获取页面 #打开浏览器(不登陆) def login():url = 'https://www.toutiao.com/'opt ...
- Cosplay美图爬取
python爬虫简单爬取 最近学习了爬虫,朋友说想看看关于cos的美图,好巧不巧找到了一个好的网站,废话不多说,下面就帮朋友拿图片. 基于基础爬虫 目标网站http://www.cosplay8.co ...
- python爬取头条图集_Python爬虫基础练习(六) 今日头条街头篮球图片爬取
今天我们要爬取的仍然是图片,不过与上一篇有所不一样的是,今天爬取的是今日头条上的图集,接着往下看吧~ 运行平台:Windows Python版本:Python3.6 IDE: Sublime Text ...
- python爬取斗鱼主播图片_F_hawk189_新浪博客
今天闲来无事,爬取一下斗鱼女主播的图片,之前学习scrapy的时候写过一个找不到了,今天使用requests和bs4重新写了一份,闲话不多说,直奔主题. 首先用Chrome浏览器访问斗鱼官网: 当然是 ...
- Python-爬取今日头条美图
import requests from urllib.parse import urlencode import os from hashlib import md5 from multiproce ...
- python爬虫今日头条_Python3从零开始爬取今日头条的新闻【一、开发环境搭建】...
所谓爬虫,就是通过编程的方式自动从网络上获取自己所需的资源,比如文章.图片.音乐.视频等多媒体资源.通过一定的方式获取到html的内容,再通过各种手段分析得到自己所需的内容,比如通过Beautiful ...
最新文章
- Exchange 2010 恢复误删除的邮箱账户及其邮箱
- Tips_发送请求时添加一个随机数参数,让浏览器每次都重新发请求到服务器
- python -m uiautomator2 init 报错_Python|实现属于自己的数据类型
- dw生日祝福网页制作教程_明星祝福生日视频制作
- Java反射学习(java reflect)(三)
- 不要让海浪中奔腾的豪情任岁月摧折,不要让江风中许下的誓言随流水消逝
- Codeforces 1149 题解
- selenium+python中,框架中,怎么返回上一个菜单
- 拉取ftp服务器上的文件_winscp和云服务器,2步实现winscp将文件上传到腾讯云Linux云服务器...
- 解决安装Weblogic domain卡住问题(Primeton BPS)
- 注意力机制-深度学习中的注意力机制+注意力机制在自然语言处理中的应用
- Linux中实现远程登录Xshell和Xftp
- centos7安装详细图解_开封温包规格,电热执行器安装详细图解
- SQL结构化查询语言基础知识 转
- 《单细胞生物》教学反思
- devcloud 基础架构
- UVA12676 Inverting Huffman
- 记解决一次drawable资源找不到的问题
- linux自制硬件防火墙,自制linux系统——打造属于自己的linux系统
- 2018年python薪资_最好的Python:2017和2018年至今我最喜欢的文章集
热门文章
- 新款安卓手机荣耀Magic4 至臻版到底多硬核,一拍见分晓
- My Batis XML 写 SQL 语句 中使用 count
- 台式计算机键盘配置及价格,组装台式计算机的配置列表是什么?什么是台式机?...
- 听厂家聊聊:矿井作业存在的危险以及常使用的劳保防护用品有哪些?
- 关于企业管理技巧的八个故事
- 帆软报表开发常用公式_20200909
- 企业服务器文件管理,企业文件服务器管理
- Python:(使用matplotlib画图)次坐标轴,两个坐标轴
- 项目开发,我的名字不可能这么可爱——开篇
- MediaRecorder和AudioRecorder,录音和获取分贝