# 头条街拍图片爬取

 1 import re
import requests
from urllib import request
import json
import os
i = 0
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
}
while True:
pag_all_url = 'https://www.toutiao.com/search_content/?offset={}&format=json&keyword=%E8%A1%97%E6%8B%8D&autoload=true&count=20&cur_tab=1&from=search_tab'
i += 20
full_pag_url = pag_all_url.format(i)
# print(full_pag_url) # 街拍的首页 根据不同的i来请求ajax,从而获得所有的街拍网址 像这样https://www.toutiao.com/search/?keyword=%E8%A1%97%E6%8B%8D
pag_html = requests.get(full_pag_url,headers = headers).text
pag_html_str = str(json.loads(pag_html))
# print(pag_html_str) #把网页转化为字符串 进行正则匹配
img_pag_id = re.findall(r'\'item_source_url\': \'\/group\/(\d*)\/\',',pag_html_str)
# print(img_pag_id) #获得每个街拍的url like this--->https://www.toutiao.com/a6590127156037157379/
for l in img_pag_id: #图片下载
img_all_url = 'https://www.toutiao.com/a{}'
full_url = img_all_url.format(l)
# print(full_url)#图片的url print(full_pag_url)#图片所在的url
html = requests.get(full_url,headers=headers).text
pattern = r'gallery: JSON\.parse\((.*)\),'
ans1 = re.search(pattern,html)
try:
ans1_str = json.loads(ans1[1])
ans1_dic = json.loads(ans1_str)
# print(ans1_dic)
# if not os.path.exists('1'):
# os.mkdir('1')
for q in ans1_dic['sub_images']:
img_url = q['url']
print(img_url)
filename = '1/' + img_url.split('/')[-1] + '.jpg'
request.urlretrieve(img_url, filename)
except:continue

最新文章

  1. SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
  2. 20145223《信息安全系统设计基础》 GDB调试汇编堆栈过程分析
  3. CodeIgniter笔记-去掉index.php
  4. 好神奇的代码,可以让匿名用户对特定SharePoint 列表拥用添加列表项的权限哦
  5. 让background的图片不随着view的大小而改变
  6. css层叠选择
  7. linux下查看系统进程占用的句柄数
  8. php 获取时间今天明天昨天时间戳
  9. DELL服务器SAS 5 I_R 完全配置手册
  10. Java问题汇集(2)
  11. hdu-2768-Cat vs. Dog(二分图-最大匹配数)
  12. 破解win2008r2服务器域用户名
  13. Naive Bayes在mapreduce上的实现(转)
  14. 调用图灵机器人API实现Android智能机器人
  15. git回退操作
  16. OutOfMemoryError 到底能不能被捕获?
  17. SpringCloud Netflix Eureka(服务注册/发现)
  18. 分布式服务管理框架 ZooKeeper
  19. Codeforces 1053C Putting Boxes Together 树状数组
  20. Win10上启动UICrawler自动遍历时报 "org.openqa.selenium.WebDriverException: An unknown server-side error occur red while processing the command. Original error: Could not sign with default certifi cate."

热门文章

  1. Master的注册机制和状态改变管理解密
  2. easyui学习笔记3—在展开行内的增删改操作
  3. React Native调试技巧与心得
  4. VMware workstation 虚拟机安装帮助文档(以windows server 2003为例)
  5. slf4j-api-1.5.8.jar
  6. codeforces793 B. Igor and his way to work (dfs)
  7. hbase hfilev2
  8. webpack导学
  9. ROBOCOPY——Windows 的可靠文件复制
  10. 使用js接收ajax解析的json再拼成一个自己想要的json