上车了,上车了(python爬取xx车数据)

最近小编爬虫的作业比较多,所有整理的博客也不少。欢迎大家评论关注。

首先我们先选择自己要爬取的网址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





显示效果:(好了,谢谢大家观看)
在这里插入图片描述

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韶光不负

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值