import requests,json,os,time,re
from urllib import request
from piaot import *
提交post,翻页,因为是瀑布流
def post_pq(url):
headers = {
"User-Agent": pa()
}
# 用post方法调用
a = requests.post(url, headers=headers)
# 返回
a1 = a.text
# 用json转码
a1 = json.loads(a1)
return a1
主循环
def pq(x=0):
for i in range(x):
# 判断当x结束值等于当前i的值说明循环结束,所以强制结束
if i == x:
break
# 处理每次网页的页数
shu = i*20
# 自定义网站
url='http://www.toutiao.com/search_content/?offset='+str(shu)+'&format=json&keyword=%E8%A1%97%E6%8B%8D&autoload=true&count=20&cur_tab=1&from=search_tab'
# 调用定义的请求网站方法
a1=post_pq(url)
# 计数
shu=0
# 循环爬取想要的数据
for j in range(20):
xs = a1['data'][j]
# 判断是否存储
if 'article_url' in xs.keys():
shu+=1
name=(xs['title'])
# 存储命名
b = 'C:/Users/黑神/Desktop/pc_zy/街拍/' + name
# 命名
b3 = 'C:/Users/黑神/Desktop/pc_zy/街拍/' + name + '/pic'
# 判断当前路径是否存在,没有则创建new文件夹
if not os.path.exists(b):
print('正在创建文件夹:路径C:/Users/黑神/Desktop/pc_zy/街拍/')
# 执行存储
os.makedirs(b3)
print('创建成功....')
# 获得每一页的小题的连接
xbt=(xs['article_url'])
# 调用自定义函数
html = yc(xbt)
# 将返回的2进制修改编码utf-8
html = html.decode('utf-8')
# 正则表达式
xz = r'JSON\.parse\((.*)\),'
ll = re.search(xz, html)
# 返回值
html = ll.group(1)
# json转码
xq = json.loads(html)
# 2次json转码
xq = json.loads(xq)
shu_l=0
# 循环url网络连接
for i in xq['sub_images']:
shu_l+=1
tp=b3+'//{}.jpg'.format(str(shu_l))
tp_url=yc(i['url'])
# 保存到文件
with open(tp, 'wb') as f:
f.write(tp_url)
print('名称:',name,'网站:',xbt,'现在执行第',shu,'次!')
if name==’main‘:
#输入页数,例如:3
pq(3)