这篇文章主要为大家展示了“python如何实现爬虫?如何爬取汽车之家案例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python如何实现爬虫?如何爬取汽车之家案例分析”这篇文章吧。

python如何实现爬虫?如何爬取汽车之家案例分析

一、爬汽车之家

汽车之家这个网站没有做任何的防爬虫的限制,所以最适合我们来练手,下面一起来试试吧!

1、先导入我们要用到的模块

import requests
from bs4 import BeautifulSoup

2、利用requests模块伪造浏览器请求

# 通过代码伪造浏览器请求

res = requests.get(https://www.autohome.com.cn/news/)

3、设置解码的方式,python是utf-8,但是汽车之家是用gbk编码的,所以这里要设置一下解码的方式

# 设置解码的方式

res.encoding = "gbk"

4、把请求返回的对象,传递一个bs4模块,生成一个BeautifulSoup对象

soup = BeautifulSoup(res.text,"html.parser")

5、这样,我们就可以使用BeautifulSoup给我们提供的方法,如下是查找一个div标签,且这个div标签的id属性为auto-channel-lazyload-atricle

# find是找到相匹配的第一个标签

div = soup.find(name="div",attrs={"id":"auto-channel-lazyload-article"})

# 这里面的div是一个标签对象

6、findall方法,是去找到符合条件的所有的标签,下面是在步骤5的div标签内查找所有的li标签

li_list = div.find_all(name="li")

7、查找li标签中的不同条件的标签

li_list = div.find_all(name="li")
for li in li_list:
 title = li.find(name="h4")
 neirong = li.find(name="p")
 href = li.find(name="a")
 img = li.find(name="img")
 if not title:
  continue

8、获取标签的属性

print(title, title.text, sep="标题")
print(neirong, neirong.text, sep="内容")
print(href, href.attrs["href"], sep="超链接")

# 获取标签对接的属性

print(img.attrs["src"])
ret = requests.get(img_src)

9、如果我们下载一个文件,则需要requests.get这个文件,然后调用这个文件对象的content方法

src = img.get("src")
img_src = src.lstrip("/")
file_name = img_src.split("/")[-1]
img_src = "://".join(["https",img_src])
print(file_name)
ret = requests.get(img_src)
with open(file_name,"wb") as f:
 f.write(ret.content)

完整的代码你们可以自己整理,还可以通过这个案例举一反三合法的去爬取其他的网站。

以上就是关于“python如何实现爬虫?如何爬取汽车之家案例分析”的全部内容了,希望分享的内容对大家有所帮助,赶紧动手操作起来吧,如果你还想学习更多有关python爬虫的知识,可以继续关注哦!

更多python相关文章请访问分类:python

【版权声明】本文图文出自大盘站@dapan.cc,转载请注明出处!