zigzag 发表于 2024-4-16 03:59

薅羊毛赚客吧0818爬虫有奖活动 python 思路与实现

个人版本python==3.8.6requests==2.31.0
要点思路:
分析网页结构
如果
urls =
改成
urls =
爬取的活动会更多一点,时效性会差一点

知识点:
列表是一个有序的集合,可以包含任意类型的元素,并且可以通过索引访问。
字典是一个无序的集合,它存储键值对(key-value pairs),其中键是唯一的,可以用来查找与之相关联的值。
取随机数
正则(难点)
写入文件#python==3.8.6#requests==2.31.0
#[] 创建了一个空列表(list)。列表是一个有序的集合,可以包含任意类型的元素,并且可以通过索引访问。
#{} 创建了一个空字典(dictionary)。字典是一个无序的集合,它存储键值对(key-value pairs),其中键是唯一的,可以用来查找与之相关联的值。
#取随机数
#写入文件

import requests
import re
import csv
# 生成链接列表
urls =
# 设置请求头
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36'
}


matches = []
for url in urls:
    # 发送HTTP GET请求
    response = requests.get(url, headers=headers)

    # 确保请求成功
    if response.status_code == 200:
      # 注意:这里的正则表达式需要根据实际的HTML结构进行调整
      matches_temp = re.findall(r'(\d{7,}).html" target="_blank" title="([\u4e00-\u9fa5].*)" ', response.text)
      matches.extend(matches_temp)# 将找到的匹配项添加到matches列表中
# 初始化空字典来存储URL和标题的配对
match_dict = {}
# 遍历matches列表构建字典
for match in matches:
    match_id = match
    match_title = match
    url = f"http://www.0818tuan.com/xbhd/{match_id}.html"
    match_dict = match_title

with open("爬取结果.csv", 'w', newline='', encoding="GBK",errors='ignore') as f:
    writer = csv.writer(f)
    writer.writerow(['url链接', '标题'])# 写入表头
    # 遍历字典并写入匹配结果
    for url, title in match_dict.items():

         writer.writerow()

happyxuexi 发表于 2024-4-16 07:48

能实时判断新增的吗?
谢谢分享。

cbypm1984 发表于 2024-4-16 08:12

大佬怎么用

angelabebe 发表于 2024-4-16 08:23

谢谢分享。

anning666 发表于 2024-4-16 08:35

边学python,边实战练习,很好的学习方式呢~~~

tyq2003 发表于 2024-4-16 08:37

谢谢楼主分享,为楼主点赞!

zucker 发表于 2024-4-16 08:53

一会儿就封你ip,意义不大

susong987 发表于 2024-4-16 09:07

这个不错可以学习

milu1123 发表于 2024-4-16 09:11

刚看了一下,代码的思路还可以改进!!

sztoplon 发表于 2024-4-16 09:20

顶贴收藏,学习一下
页: [1] 2 3
查看完整版本: 薅羊毛赚客吧0818爬虫有奖活动 python 思路与实现