[python爬虫]爬取今日头条,例子:街拍将图片存到本地文件夹里

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)

猜你喜欢

转载自blog.csdn.net/Black_God1/article/details/81750794
今日推荐