关注分享主机优惠活动
国内外VPS云服务器

Python爬虫实践、请求模块、Python实现头条街拍照片检索

总结:在介绍中,我们使用爬虫拍摄了今日头雕的精美街拍照片。 获取浏览器详细信息以获取文章链接。 我们无法获得相关代码的街道照片。 我还应该提到该模块的错误报告。 调用对象的方法。 如果下载文件时发生错误,则会抛出异常。 为了防止程序崩溃,必须使用 和 语句包装代码行来处理此错误。 。

简介

使用Python爬取偷照美丽街拍照片。 废话不多说了。

开始玩吧~

开发工具

Python 版本:3.6.4

相关模块:

请求模块;

>

它是一个模块。

Python 附带的几个模块。

环境设置

安装Python,并将其添加到环境变量中,并使用pip安装所需的相关模块。

浏览器详细信息

获取文章链接相关代码:

import requestsimport jsonimport reheaders = { ' user [ k4 ]agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML、Gecko 等) Chrome/55.0.2883.87 Safari/537.36'}def get_first_data(offset): params = { 'offset': offset,'format': 'json', 'keyword': '街头摄影', 'autoload': 'true', 'count': '20', 'cur_tab': '1', 'from':'search_tab' } 响应= request.get(url='https://www.toutiao.com/search_content/', headers=headers, params=params) 尝试:response.raise_for_status() 返回响应文本,排除例外情况: print("Get failed") Nonedef handle_first_data(html): data = json.loads(html) if data and "data" in data.keys(): for item in data.get (" data") : yield item.get("article_url")

我应该在这里提到请求模块中的错误报告。 在响应对象上调用 raise_for_status() 方法。 如果下载文件时发生错误,则会抛出异常。 必须使用Try 和 except 语句包装了几行代码来处理此错误,而不会导致程序崩溃。

还附上requests模块的技术文档网址:http://cn.python-requests.org/zh_CN/latest/

检索相关代码图片链接:

def get_second_data(url): if url: try:response =requests.get(url, headers=headers) response.raise_for_status() return response.text 将异常作为异常返回。 exc: print("输入链接时发生错误") return Nonedef handle_second_data(html): if html:pattern = re.compile(r'gallery: JSON.parse/((.*?)/), ', re .S) 结果 = re.search(pattern, html) 如果结果: imageurl = [] data = json.loads(json.loads(result.group(1))) 如果数据 data.keys() 中的“sub_images”: sub_images = data.get("sub_images") Images = [item.get('url') for item in sub_images] 对于图像中的图像: imageurl.append(images) return imageurl else: print("have no result")

图像相关 获取代码:

def download_image(imageUrl): 对于 imageUrl 的 URL: try: except image =requests.get(url).content: pass with open("images"+str(url[-10:])+".jpg", "wb") as ob: ob.write(image) ob.close() print(url[-10: ] + "下载成功!" + url)def main(): html = get_first_data(0) for url in handle_first_data(html): html = get_next_data(url) if html: result = 处理秒数据 (html)if result: try: download_image(result) Nothing KeyError: print("{0} 有问题,stop".format(result)) continueif __name__ == '__main__': main() 最后下载成功。

显示详细信息

未经允许不得转载:主机频道 » Python爬虫实践、请求模块、Python实现头条街拍照片检索

评论 抢沙发

评论前必须登录!