前言
大家早好、午好、晚好吖 ❤ ~欢迎光临本文章
环境使用:
-
python 3.8 运行代码
-
pycharm 2022.3.2 辅助敲代码
-
专业版是付费的 <码可以免费用>
-
社区版是免费的
-
模块使用:
内置模块 无需安装
- csv
第三方模块 需要安装的
-
requests >>> pip install requests
-
parsel >>> pip install parsel
第三方模块安装:
win + R 输入cmd 输入安装命令 pip install 模块名
(如果你觉得安装速度比较慢, 你可以切换国内镜像源)
完整源码、教程 点击此处跳转文末名片获取 ,我都放在这里了。
采集数据代码
# 导入数据请求模块 <第三方模块, 需要安装 pip install requests>
import requests
# 导入数据解析模块 <第三方模块, 需要安装 pip install parsel>
import parsel
# 导入csv
import csv
open内置函数 --> 创建文件
f = open('data1.csv', mode='w', encoding='utf-8', newline='')
调用csv模块里面字典写入DictWriter f文件对象 fieldnames 字段名 <表头>
csv_writer = csv.DictWriter(f, fieldnames=[
'标题'
'年份',
'里程',
'城市',
'价格',
'标签',
'保修',
'详情页',
])
```python
# 写入表头
```python
csv_writer.writeheader()
“”"
- 发送请求, 模拟浏览器对于url地址发送请求
“”"
for page in range(1, 51):
try:
# 请求链接
url = f'https://****/all/?page={page}'
# 模拟浏览器 < headers请求头 >
headers = {
# User-Agent 用户代理, 表示浏览器基本身份信息
'User-Agent': ' Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
}
发送请求
通过requests模块里面get请求方法对于url地址发送请求, 并且携带上headers请求头伪装, 最后用自定义变量名接受返回数据
response = requests.get(url=url, headers=headers)
print(response)
“”"
-
获取数据, 获取网页源代码 <服务器返回响应数据>
-
解析数据, 提取我们想要的数据内容
“”"
# 转换数据, 把获取到 html字符串数据 <response.text>, 转成可解析对象
selector = parsel.Selector(response.text) # <Selector xpath=None data='<html lang="en">\n<head>\n <meta cha...'>
print(selector)
# 获取所有li标签 --> 获取多个数据, 返回列表
lis = selector.css('.Content_left .gongge_ul .li')
# for循环遍历, 把列表里面元素一个一个提取出来
for li in lis:
# 标题
title = li.css('a.title span::text').get()
# 信息
info = li.css('.gongge_main p i::text').getall()
year = info[0].replace('年', '')# 年份
km = info[1].replace('万公里', '') # 里程
city = info[2].strip() # 城市
# 价格
price = li.css('.price .Total::text').get()
tag = li.css('.car_tag em::text').get().strip() # 标签
label = li.css('.tc_label::text').get() # 是否保修
href = li.css('a.title::attr(href)').get() # 详情页
dit = {
'标题': title,
'年份': year,
'里程': km,
'城市': city,
'价格': price,
'标签': tag,
'保修': label,
'详情页': href,
}
# 写入数据
csv_writer.writerow(dit)
print(title, year, km, city, price, tag, label, href)
except:
print('源码、解答、教程+V:pytho8987获取,验证备注“777”')
括展内容
-
解析方法: 都要掌握, 那个方便用那个
re : 直接提取字符串数据
css : 根据标签属性提取数据内容
xpath: 根据标签节点提取数据内容
-
response.text 获取响应的文本数据 <获取网页源代码>
尾语 💝
好了,今天的分享就差不多到这里了!
完整代码、更多资源、疑惑解答直接点击下方名片自取即可。
对下一篇大家想看什么,可在评论区留言哦!看到我会更新哒(ง •_•)ง
喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!