每日头条电脑版下载

发布时间: 2023-04-16 02:24 阅读: 文章来源:转载

今天笔者准备分享怎么利用python爬虫来爬取今日头条的图片。这次的爬虫策略和以往的不同,第一篇文章爬取小米商城图片时,其图片的url直接位于其源代码中,而这次这是随着鼠标的滚动而逐渐加载出内容的,我们把这称为ajax,即异步js和xml。简单来说就是我们需要分析鼠标下滑后更新的ajax文件,其为xhr类型。

由图可知,当我们下滑时,更新了xhr文件,接下来我们就分析该文件有什么特点。

在分析该文件后,我们可知我们实际上访问的url是上图的请求url,鼠标继续下滑,观察该url有什么特点,在对比后可知,随着我们鼠标的向下滑动,请求的url参数变化的只有page_num,那么我们只需要在爬虫程序中对这个参数进行变化就能获得后续内容了。点开预览,可以看到我们要的所有数据都在这个文件里,这个文件为json类型。下面的代码行,我将讲解注释在代码块中。

from urllib import responseimport requestsfrom urllib.parse import urlencodeimport osheaders={‘User-Agent‘:‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36 Edg/97.0.1072.69‘,‘Cookie‘:‘msToken=4ahLuiLjfpuWMD5OwhpAL_xiJEGVTVxP-cFoz8v3SSQZ9OPIHwkEvo7qiSF4Y49SZ4Iidend2CSb0TKG77a-yYW03aeDDOodAIEkzTNlQmHdozLZBg==; ttwid=1%7CTtoq2ISGEhV8CtPheOMJZ1r1H00RLEAjYyx3M88iP_w%7C1643090726%7Cf5008ad95c4e84bd2e0d71510562329c88f39574e00fc5f9deba7c679fe6e47a; _S_DPR=1.25; _S_IPAD=0; MONITOR_WEB_ID=7057020878386791973; _S_WIN_WH=428_763‘,‘Host‘:‘so.toutiao.com‘,‘X-Requested-With‘: ‘XMLHttpRequest‘,}#请求头,注明xml类型base_url = ‘https://so.toutiao.com/search?‘def request_page(page):params={‘keyword‘:‘黑丝‘,#这个为我们搜索的关键词‘pd‘:‘atlas‘,‘source‘:‘search_subtab_switch‘,‘dvpf‘:‘pc‘,‘aid‘:‘4916‘,‘page_num‘:str(int(page)),‘rawJSON‘:‘1‘,‘search_id‘:‘2022012514064501021204610125FEFE2C‘}#params为请求url的参数,这里可变参数只有pageurl = base_url + urlencode(params)#将基础url和参数进行拼接try:response = requests.get(url,headers=headers)if response.status_code==200:return response.json()#在请求成功时返回json文件,应为xhr文件里为json格式except requests.ConnectionError as e:return Nonedef parse_json(json):if json:datas=json.get(‘rawData‘).get(‘data‘)for result in datas:result={‘text‘:result[‘text‘],‘url‘:result[‘img_url‘]}write_result(result)def write_result(result):global numwith open(‘%d.jpg‘% num, ‘wb‘) as f:response = requests.get(result[‘url‘])f.write(response.content)num+=1if __name__ == ‘__main__‘:page = 1num=1for i in range(3):json = request_page(page)parse_json(json)page+=1#最后我我们对这个参数进行变化,遍历。

最后的效果图如下:

最后,如果大家喜欢的文章给我点点关注,我会不定期更新文章。

•••展开全文
相关文章