python爬虫—— 抓取今日头条的街拍的妹子图
AJAX 是一种用于创建快速动态网页的技术。 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
近期在学习获取js动态加载网页的爬虫,决定通过实例加深理解。
1、首先是url的研究(谷歌浏览器的审查功能)
http://www.toutiao.com/search_content/?offset=0&format=json&keyword=%E8%A1%97%E6%8B%8D&autoload=true&count=20&cur_tab=1
对应用get方法到url上获取信息。网页对应offset=0 、keyword=%E8%A1%97%E6%8B%8D 是会变的。如果要批量爬取,就得设置循环。
当网页下拉,offset会20、40、60的变化,其实就是每次加载20个内容。
2、
通过requests获得response,进行json解析。
还是一样的网页,切换到Preview,可以看到json的数据内容。title在['date'][0]['title']下,其他类似。
import json
import requests,os
def download_pic(file,name,html):
r = requests.get(html)
filename=os.path.join(file,name+'.jpg')
with open(filename,'wb') as f:
f.write(r.content) url = 'http://www.toutiao.com/search_content/?offset=0&format=json&keyword=%E8%A1%97%E6%8B%8D&autoload=true&count=20&cur_tab=1' res = requests.get(url)
json_data = json.loads(res.text)
data = json_data['data']
for i in data:
print i['title']
file_path = os.getcwd()+'\image'
print file_path
for p in i['image_detail']:
print p['url']
name = p['url'].split('/')[-1]
download_pic(file_path,name,p['url'])
在当前目录新建image文件夹,然后爬虫下载图片。
图片名截取url链接的后面部分31e30003d4be75c719ae.jpg
例如http://p3.pstatp.com/large/31e30003d4be75c719ae
结果如下:(仅供学习交流)
循环什么的没写只爬取前20个链接的图片。
--------------------------------------------------------------------------------------------------------------
http://jandan.net/ooxx——煎蛋网
同样是妹子图,有些网页不涉及json动态加载的就比较简单了,用beautifulsoup即可
贴上代码匿了
import requests,os,time
from bs4 import BeautifulSoup
def download_pic(file,name,html):
r = requests.get(html)
filename=os.path.join(file,name+'.jpg')
with open(filename,'wb') as f:
f.write(r.content) def get_url(url):
res = requests.get(url)
soup = BeautifulSoup(res.text,'lxml')
data = soup.select(' div.text > p > img')
print data
for i in data:
s = i.attrs['src'][2:]
print s
file_path = os.getcwd()+'\imgage1'
print file_path
name = i.attrs['src'].split('/')[-1]
download_pic(file_path,name,'http://'+s) for i in reversed(range(236)):
url = 'http://jandan.net/ooxx/page-'+str(i)+'#comments'
if requests.get(url).status_code == 200:
get_url(url)
time.sleep(5)
python爬虫—— 抓取今日头条的街拍的妹子图的更多相关文章
- 分析 ajax 请求并抓取 “今日头条的街拍图”
今日头条抓取页面: 分析街拍页面的 ajax 请求: 通过在 XHR 中查看内容,获取 url 链接,params 参数信息,将两者进行拼接后取得完整 url 地址.data 中的 article_u ...
- 分析AJAX抓取今日头条的街拍美图并把信息存入mongodb中
今天学习分析ajax 请求,现把学得记录, 把我们在今日头条搜索街拍美图的时候,今日头条会发起ajax请求去请求图片,所以我们在网页源码中不能找到图片的url,但是今日头条网页中有一个json 文件, ...
- python多线程爬取-今日头条的街拍数据(附源码加思路注释)
这里用的是json+re+requests+beautifulsoup+多线程 1 import json import re from multiprocessing.pool import Poo ...
- Python Spider 抓取今日头条街拍美图
""" 抓取今日头条街拍美图 """ import os import time import requests from hashlib ...
- Python 爬虫爬取今日头条街拍上的图片
# 今日头条--街拍 import requests from urllib.parse import urlencode import os from hashlib import md5 from ...
- python爬虫之分析Ajax请求抓取抓取今日头条街拍美图(七)
python爬虫之分析Ajax请求抓取抓取今日头条街拍美图 一.分析网站 1.进入浏览器,搜索今日头条,在搜索栏搜索街拍,然后选择图集这一栏. 2.按F12打开开发者工具,刷新网页,这时网页回弹到综合 ...
- 15-分析Ajax请求并抓取今日头条街拍美图
流程框架: 抓取索引页内容:利用requests请求目标站点,得到索引网页HTML代码,返回结果. 抓取详情页内容:解析返回结果,得到详情页的链接,并进一步抓取详情页的信息. 下载图片与保存数据库:将 ...
- 分析ajax请求抓取今日头条关键字美图
# 目标:抓取今日头条关键字美图 # 思路: # 一.分析目标站点 # 二.构造ajax请求,用requests请求到索引页的内容,正则+BeautifulSoup得到索引url # 三.对索引url ...
- python 爬虫抓取心得
quanwei9958 转自 python 爬虫抓取心得分享 urllib.quote('要编码的字符串') 如果你要在url请求里面放入中文,对相应的中文进行编码的话,可以用: urllib.quo ...
随机推荐
- tensorflow学习笔记——自编码器及多层感知器
1,自编码器简介 传统机器学习任务很大程度上依赖于好的特征工程,比如对数值型,日期时间型,种类型等特征的提取.特征工程往往是非常耗时耗力的,在图像,语音和视频中提取到有效的特征就更难了,工程师必须在这 ...
- luogu -P1095 守望者的逃离 - 分别DP
P1095 守望者的逃离: https://www.luogu.org/problemnew/show/P1095 题意: 有一个人要在S长度的直线上跑过去,初始有M的魔法值,用10点魔法值可以在一秒 ...
- CODE[VS] 1294 全排列
1294 全排列 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 给出一个n, 请输出n的所有全 ...
- RodRego — a register machine
RodRego - a register machine 寄存器机(register machine)是一种类似于图灵机一样的抽象机器,是计算机模型的一种,他和其他的抽象机一样都是图灵等价的. Rod ...
- 【Spring】对持久层技术的整合
一.持久层技术 二.JdbcTemplate 开发步骤: 1. 导入相关的jar包 2. 配置连接池(数据源) 将参数设置到属性文件中: 3. 创建表 4. 编写实体类 5. Dao层实现 5.1 继 ...
- c语言实现字符指针(字符串)数组的排序
需求: "ff555d", "114ddd", "114dd","aaa", "aaab", &qu ...
- IDEA中自动导包快捷键
1.File-->Settings 2.解释: 勾选标注第1个选项,IntelliJ IDEA 将在我们书写代码的时候自动帮我们导入需要用到的包.但是对于那些同名的包,还是需要手动 Alt + ...
- Salesforce LWC学习(七) Navigation & Toast
上一篇我们介绍了针对LWC中常用的LDS的适配的wire service以及@salesforce模块提供的相关的service,其实LWC中还提供其他的好用的service,比如针对导航相关的lig ...
- “独立”OpenVINO R2019_2 版本中的“super_resolution_demo”例子的,解决由于 R2019_1到R2019_2 升级造成的问题
OpenVINO提供了丰富的例子,为了方便研究和使用,我们需要将这些例子由原始的demo目录中分离出来,也就是“独立”运行,这里我们选择了较为简单的super_resolution_demo来说明问题 ...
- Spring Boot 配置文件和命令行配置
Spring Boot 属于约定大于配置,就是说 Spring Boot 推荐不做配置,很多都是默认配置,但如果想要配置系统,使得软件符合业务定义,Spring Boot 可以通过多种方式进行配置. ...