人生苦短,我用python
女友好不容易放假,她带着我花花花的样子真的很迷人~
python 安装包+资料:点击此处跳转文末名片获取

不为什么 我的女友我来宠!

作为一个程序员,要有会用自己的技术创造价值的自觉~
今天来给大家展示一下用python采集一下外包网站~
这可是财富道路的第一步啊~

环境使用:
- Python 3.8
- Pycharm
模块使用:
- requests >>> pip install requests
- parsel >>> pip install parsel
- csv
代码实现步骤:
- 发送请求, 对于找到url地址发送请求
- 获取数据, 获取服务器返回数据
- 解析数据, 提取我们想要数据内容
- 保存数据, 保存csv表格里面
- 多页数据采集: 分析请求的url变化规律
代码
导入模块
# 导入数据请求模块 导入模块没有使用 灰色待机状态
import requests  # 第三方模块 pip install requests  (别人写好 开源代码,你可以直接去调用)
# 导入数据解析模块
import parsel  # 第三方模块 pip install parsel
# 导入csv模块
import csv  # 内置模块 不需要安装的
完整代码
f = open('data.csv', mode='a', encoding='utf-8', newline='')
# 快速替换 选择替换内容 按住ctrl + R 输入正则
csv_writer = csv.DictWriter(f, fieldnames=[
    '标题',
    '招标',
    '浏览人数',
    '竞标人数',
    '招标状态',
    '价格',
    '详情页',
])
csv_writer.writeheader()
# 1. 发送请求, 对于找到url地址发送请求
for page in range(1, 11):
    print(f'正在爬取第{page}页的数据内容')
    url = f'https://task.epwk.com/page{page}.html'  # 确定网址
    # 爬虫模拟(伪装成)浏览器 对于url地址发送请求
    # 反爬 相当于别人给你打电话, 电话显示推销广告
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36'
    }
    response = requests.get(url=url, headers=headers)  # <Response [200]>  200状态码表示 请求成功 不代表得到数据了
    # 2. 获取数据, 获取服务器返回数据
    # print(response.text)   # 返回html字符串数据内容  >>> 提取字符串数据 要使用re正则
    # 3. 解析数据, 提取我们想要数据内容
    selectors = parsel.Selector(response.text)  # 需要转一下数据类型
    # 有了解过css选择器吗?  xpath根据标签节点提取数据, css选择器是根据标签属性提取数据
    # 第一次提取, 获取所有div标签
    divs = selectors.css('.itemblock')  # 列表
    for div in divs:  # for遍历循环
        # 定位有一个class类名字为title的div标签 下面a标签里面 title 属性
        # attr() 属性选择器, 选择某一个标签里面属性内容
        title = div.css('div.title a::attr(title)').get()  # get 返回字符串, 并且取第一个标签数据
        # strip() 去除字符串左右两端空格
        modelName = div.css('div.modelName::text').get().strip()  # 招标
        num = div.css('div.browser div:nth-child(2) span::text').get().strip()  # 浏览人数
        num_1 = div.css('div.browser div:nth-child(3) span::text').get().strip()  # 竞标人数
        status = div.css('span.status::text').get().strip()  # 招标状态
        price = div.css('span.price::text').get().strip()  # 价格
        href = div.css('div.title a::attr(href)').get()  # 详情页
        # 4. 保存数据, 保存到表格数据 字典创建  键:值  >>> 键值对  键值对与键值对之间用 逗号隔开
        # 值 可以是用任何数据类型, 键 大多数情况字符串数据类型 不能以数字
        dit = {
            '标题': title,
            '招标': modelName,
            '浏览人数': num,
            '竞标人数': num_1,
            '招标状态': status,
            '价格': price,
            '详情页': href,
        }
        csv_writer.writerow(dit)
        print(title, modelName, num, num_1, status, price, href)
视频教程【有缘就能看 没缘就算辽】
https://space.bilibili.com/555479228?spm_id_from=…0.0

 希望大家都可以赚小钱钱~
文章到这里就结束啦~
咱下篇文章再见啦(✿◡‿◡)



















