##汽车之家爬虫
# -*- coding: utf-8 -*-
#---------------------------------------
# 程序:汽车之家5-12万车型抓取爬虫
# 日期:2017-12-03
# 软件:IPython
# 操作:直接打开
# 功能:抓取汽车之家报价页上5-12万的所有车型
# 难点:编码问题encode
#---------------------------------------
import requests#用于下载网页
import bs4#用于解析网页
##找到车型位置对应的html并定义车型
sample_url ='https://car.autohome.com.cn/price/list-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-1.html'
def parse(html):
soup = bs4.BeautifulSoup(html,'lxml')
x =soup.find_all('div',attrs={"class":"tab-content-itemcurrent"})#找到车型所在的位置对应的html
car_types = [i.text for i inx[0].find_all('div',attrs={"class":"main-title"})]#找到某页上所有的车型
return car_types
##对车型页数进行循环处理,将所有5-12万车型数据都爬取
defscrawl(page_iter):
info= []
for page_num in range(1,page_iter+1):
url_style ='http://car.autohome.com.cn/price/list-{min_price}_{max_price}-0-0-0-0-0-0-0-0-0-0-0-0-0-0-{page_num}.html'
url =url_style.format(min_price=5,max_price=12,page_num=page_num)
r = requests.get(url)#下载网页
html =r.content#解析网页
car_types = parse(html)#获取第page_num的车型
info.extend(car_types)#将第page_num的车型放入Info列表中
print(page_num)
return info
if __name__ =='__main__':
info = scrawl(30)
##将最终得到的info数据输出到output.txt中
withopen('output.txt','w',encoding='gbk') as f:
f.write('\n'.join(info))
一起学习的小伙伴如果有什么想法或者意见,欢迎沟通~
投稿|沟通邮箱:yzhmry1314@163.com