上车了,上车了(python爬取瓜子二而手车数据)
Posted 韶光不负
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了上车了,上车了(python爬取瓜子二而手车数据)相关的知识,希望对你有一定的参考价值。
最近小编爬虫的作业比较多,所有整理的博客也不少。欢迎大家评论关注。
首先我们先选择自己要爬取的网址url,小编选择的比较直接,就全部下爬取。
然后获取需要属性。F12检查,找到自己需要的车名上方的ul。选择class属性,进行css选择器进行选择。
末尾就是python编程爬虫爬取数据了。
'''
爬取车名与地址路径
操作步骤
1,获取到url内容
2,css选择其选择内容
3,保存自己需要数据
'''
#导入爬虫需要的包
import requests
from bs4 import BeautifulSoup
#requests与BeautifulSoup用来解析网页的
import time
#设置访问网页时间,防止自己IP访问多了被限制拒绝访问
import re
class Position():
def __init__(self,cat_name,cat_require,):#构建对象属性
self.cat_name=cat_name
self.cat_require=cat_require
def __str__(self):
return '%s%s/n'%(self.cat_name,self.cat_require)#重载方法将输入变量改成字符串形式
class Aiqiyi():
def cat(self,url):
head= {
'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.47"
} #模拟的服务器头
html = requests.get(url,headers=head)
#headers=hard 让脚本以浏览器的方式去访问,有一些网址禁止以python的反爬机制,这就是其中一个
soup = BeautifulSoup(html.content, 'lxml', from_encoding='utf-8') # BeautifulSoup打看网页
soupl = soup.select('.car-a') # 查找标签,用css选择器,选择自己需要数据 进行选择页面第一次内容(标签要找到唯一的,找id好,如果没有考虑其他标签如class)
results = [] # 创建一个列表用来存储数据
for e in soupl:
p = Position(e.select_one('.t').get_text(strip=True),
"https://www.guazi.com"+e.get('href'))#调用类转换(继续三次筛选选择自己需要内容)
results.append(p)
return results # 返回内容
# def duyi(self,):
if __name__ == '__main__':
time.sleep(2)
#设置2秒访问一次
a=Aiqiyi()
with open(file='e:/练习.txt ', mode='a+') as f: # e:/练习.txt 为我电脑新建的文件,a+为给内容进行添加,但不进行覆盖原内容。
page = 1 # 设置条件
page1 = 1
page2 = 1
num=0
while page <= 50: # 设置循环条件,经行翻页
url = f'https://www.guazi.com/www/buy/{page}/#bread'
for item in a.cat(url):
line = f'{item.cat_name} \\t\\t "连接地址 :" {item.cat_require}\\n'
f.write(line) # 采用方法
print("下载完成")
page+=1
while page1<= 50: # 设置循环条件,经行翻页
url1=f'https://www.guazi.com/www/buy/{page1}c-1r19/#bread'
for item in a.cat(url1):
line = f'{item.cat_name} \\t\\t "连接地址 :" {item.cat_require}\\n'
f.write(line) # 采用方法
print("下载完成")
page1+=1
while page2 <= 50: # 设置循环条件,经行翻页
url2=f'https://www.guazi.com/www/buy/o{page2}c-1r18/#bread'
for item in a.cat(url2):
line = f'{item.cat_name} \\t\\t "连接地址 :" {item.cat_require}\\n'
f.write(line) # 采用方法
print("下载完成")
page2+=1
显示效果:(好了,谢谢大家观看)
以上是关于上车了,上车了(python爬取瓜子二而手车数据)的主要内容,如果未能解决你的问题,请参考以下文章