##汽车之家爬虫

# -*- 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

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐