python爬虫:爬去汽车之家

汽车之家网址:https://www.autohome.com.cn/news/ 
使用的模块:requests 、BeautifulSoup 

这就是我们要爬取的信息 

按F12审查一下元素:找到了对应的信息。而且发现要爬取的图片都在id=auto-channel-lazyload-article的div标签下的li标签里。 

python爬虫:爬去汽车之家_第1张图片

li标签下的a标签就是新闻的url;image标签,src就是获取图片的url; 
请求图片地址,将获取到的内容写成二进制文件,保存下来。 

python爬虫:爬去汽车之家_第2张图片
这就是完整的思路,接下来看一下代码:

完整代码:

  1. import requests
  2. from bs4 import BeautifulSoup
  3. url='https://www.autohome.com.cn/news/'
  4. response=requests.get(url)
  5. response.encoding=response.apparent_encoding
  6. soup=BeautifulSoup(response.text,'html.parser')
  7. target = soup.find(id='auto-channel-lazyload-article')
  8. li_list=target.find_all('li')
  9. for i in li_list:
  10.     a=i.find('a')
  11.     if a:
  12.         print(a.attrs.get('href'))
  13.         txt=a.find('h3').text
  14.         print(txt)
  15.         img = a.find('img').attrs.get('src')
  16.         print(img)
  17.         img_response=requests.get(url='http:'+img)
  18.         import uuid#用来生成唯一识别码的。具有多种算法
  19.         file_name=str(uuid.uuid4())+'.jpg' 
  20.         with open(file_name,'wb')as f:
  21.             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()。
 

收集了一些python爬虫和大数据/数据分析相关的资料,想要的话关注威信公众号【南城故梦】,即可获得网盘下载链接哈~python爬虫:爬去汽车之家_第3张图片

 

你可能感兴趣的:(编程技术,Python爬虫与数据分析)