600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > python网络爬虫爬取汽车之家的最新资讯和照片

python网络爬虫爬取汽车之家的最新资讯和照片

时间:2021-10-20 00:00:57

相关推荐

python网络爬虫爬取汽车之家的最新资讯和照片

实现的功能是爬取汽车之家的最新资讯的链接

题目和文章中的照片

爬虫需要用到我们使用了 requests 做网络请求,拿到网页数据再用 BeautifulSoup 进行解析

首先先检查是否安装了pip,如果已经安装了pip,直接pip install requests,pip uninstall BeautifulSoup,安装成功就可以爬取数据了,以下就是要爬的内容

这是网页的源代码,就是通过找标签或者属性来爬取特定的内容

代码如下

import requests

import uuid

from bs4 import BeautifulSoup

response = requests.get(url= ‘/all/#pvareaid=3311229’)

‘’‘解决乱码问题,以什么样的方式编码就以什么样的方式解码’’’

response.encoding = response.apparent_encoding

‘’‘将网页的内容转换成文本打印’’’

#print(response.text)

‘’‘文本转换成对象,以什么方式进行转换’’’

soup = BeautifulSoup(response.text,features=‘html.parser’)#内置的转换方式#html.parser

target = soup.find(id = ‘auto-channel-lazyload-article’)#根据属性找

#print(target)

li_list = target.find_all(‘li’)#根据标签找,返回的是列表类型,不是beautiflsop的对象没有find函数

#print(li_list),i = li_list[0],是beautifulsoup的对象可以find

for i in li_list:

a = i.find(‘a’)

if a:

print(a.attrs.get(‘href’))#attrs表示找到a标签的所有属性,返回的是字典属性,

# 意思就是a标签中找到所有属性中的href的属性

txt = a.find(‘h3’).text#不加.txt其实是对象,加了就是字符串

print(txt)

img_url = a.find(‘img’).attrs.get(‘src’)

img_url = ‘http:’+img_url

print(img_url)

img_response = requests.get(img_url)

file_name = str(uuid.uuid4()) + ‘.jpg’#随机生成文件的名字也就是数字

with open(file_name,‘wb’) as f:

f.write(img_response.content)#content返回的是字节类型’’’

需要注意的问题就是 img_url = a.find(‘img’).attrs.get(‘src’)返回的是一个链接///newsdfs/g29/M04/89/46/120x90_0_autohomecar__ChsEflwA9DWAQiYQAAFbz6MSQTo254.jpg但是直接访问是不行的,所以要给加上http:变成一个可访问的链接地址,然后再去保存图片

另外还需要注意的是:requests可能会自动给地址添加%0A,导致不能访问

但是requests.get( ‘/all/#pvareaid=3311229’)

是正常的

url = ‘/all/#pvareaid=3311229’

requests.get(url)是不正常的无法访问

所以‘%0A’并不是被访问的网站加的,而是requets干的,%0A是十六进制的换行,即’\n’,所以需要去掉换行,可将requrl按行分裂,因为是一个列表所以可以取第一部分:res=requests.get(url.split(’\n’)[0])

以下是结果,爬取成功

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。