第一次尝试获取网站数据

这是我第一次尝试用python获取网页数据,很多东西都是第一次接触,在慢慢学习和摸索,跟着网上的课程来一步步完成了这个程序,学到了很多

import requests
import json
import os
from urllib import request
import  multiprocessing
headers={
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.124 Safari/537.36 Edg/102.0.1245.44'
}
def get_huya_meinv(page=1):
    url = f'https://www.huya.com/cache.php?m=LiveList&do=getLiveListByPage&gameId=2168&tagAll=0&callback=getLiveListJsonpCallback&page={page}'
    response=requests.get(url,headers=headers)
#获取

#content=response.json ()
    content=response.text
    result=content[len('getLiveListJsonpCallback('):-1]#对获取的json文本进行切片处理
    # print(content)
    # print(result)
    result2=json.loads(result)
    # print(result2)
    meinv_list=result2 ['data']['datas']#取数据
    for meinv in meinv_list:
        nick=meinv['nick']
        img=meinv['screenshot']
    #下载图片
        try:
            request.urlretrieve(img,f'huya/{page}-{nick}.png')
            request.urlcleanup()
            print(f'{page}-{nick}.png下载完成')
        except:
            print('error',nick)
if __name__ == '__main__':
    #自动创建虎牙文件夹
    if not os.path.exists('huya'):
        os.mkdir('huya')
    # get_huya_meinv()#单进程
    for i in range(1,10):
        # get_huya_meinv(page=1)
        multiprocessing.Process(target=get_huya_meinv,args=(i,)).start ()#多进程
#下载图片

整体思路是先用浏览器开发者工具来找到json的url然后下载成text文本后处理成json列表形式然后就用在字典里取数据的方法来获取想要的资源的url并用request模块下载这里用的是request.urlretrieve(img,f'huya/{page}-{nick}.png'),但根据后来的经验这个方法可能会在一些情况下不适用,更有普适性的方法是:

pic  = requests.get(img,headers=headers)

with open (f'huya/{page}-{nick}.png','wb') as f:

        f.write(pic.content)

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值