薅羊毛赚客吧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() 能实时判断新增的吗?
谢谢分享。 大佬怎么用
谢谢分享。 边学python,边实战练习,很好的学习方式呢~~~ 谢谢楼主分享,为楼主点赞! 一会儿就封你ip,意义不大 这个不错可以学习 刚看了一下,代码的思路还可以改进!! 顶贴收藏,学习一下