python爬虫——爬取汽车之家新闻

汽车之家网址:https://www.autohome.com.cn/news/
使用的模块:requests 、BeautifulSoup
《python爬虫——爬取汽车之家新闻》
这就是我们要爬取的信息
《python爬虫——爬取汽车之家新闻》

按F12审查一下元素:找到了对应的信息。而且发现要爬取的图片都在id=auto-channel-lazyload-article的div标签下的li标签里。
《python爬虫——爬取汽车之家新闻》
li标签下的a标签就是新闻的url;image标签,src就是获取图片的url;
请求图片地址,将获取到的内容写成二进制文件,保存下来。
这就是完整的思路,接下来看一下代码:

完整代码:

import requests
from bs4 import BeautifulSoup

url='https://www.autohome.com.cn/news/'
response=requests.get(url)
response.encoding=response.apparent_encoding

soup=BeautifulSoup(response.text,'html.parser')

target = soup.find(id='auto-channel-lazyload-article')
li_list=target.find_all('li')

for i in li_list:
    a=i.find('a')
    if a:
        print(a.attrs.get('href'))
        txt=a.find('h3').text
        print(txt)
        img = a.find('img').attrs.get('src')
        print(img)



        img_response=requests.get(url='http:'+img)

        import uuid#用来生成唯一识别码的。具有多种算法
        file_name=str(uuid.uuid4())+'.jpg' 
        with open(file_name,'wb')as f:
            f.write(img_response.content)

这里用到了uuid模块,是用来生成唯一识别码的。具有多种算法。

UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写,是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分。其目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每个人都可以创建不与其它人冲突的UUID。在这样的情况下,就不需考虑数据库创建时的名称重复问题。目前最广泛应用的UUID,是微软公司的全局唯一标识符(GUID),而其他重要的应用,则有Linux ext2/ext3文件系统、LUKS加密分区、GNOME、KDE、Mac OS X等等。另外我们也可以在e2fsprogs包中的UUID库找到实现。
python中的uuid模块
uuid模块在Python 2.5以后引入,接口包括:不可变对象UUID(UUID类)和函数uuid1()、uuid3()、uuid4()和uuid5(),后面的四个函数用于生成 RFC 4122 规范中指定的第1、3、4、5版UUID。使用uuid1()或uuid4()可以获得一个唯一的ID,uuid1()包含了主机的网络名称,uuid4()不涉及网络主机名,仅生成一个随机UUID,因此从隐私保护角度uuid4()更加安全。
此文代码中使用的就是uuid4()。

    原文作者:乐亦亦乐
    原文地址: https://blog.csdn.net/qq_41251963/article/details/81782699
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞