回过头看自己以前写的那些练手的爬虫,简直不要太辣鸡,所以就想着开个坑,有时间就把那些辣鸡代码都给更新或者重写一遍
这个爬虫原本的功能是只爬取有优惠的游戏名字,因为价格那个地方比较难爬,所以只有游戏名,而且游戏名也是不全的,因为游戏名有一些特殊字符,而编码貌似不是 utf-8
,所以导致出错,原来的版本中,出错了就直接下一个了,一点都不厉害,所以稍微修改了一下
修改的有如下两点
steam的价格这部分比较恶心,所以我这里用了新方法来获取这两个的价格
money=soup.find_all("div",class_="col search_price discounted responsive_secondrow") #原价+打折后
emoney=soup.find_all("strike") #原价
首先先获取这两个价格
for i in money:
#获取文本
i=i.get_text()
discount=emoney[a].get_text()
contest=contents[a].get_text()
i=i.replace(discount,'') #原价+打折后的价格,通过replace来将原价删除,只剩打折后
ym=re.findall('\d+',i) #正则匹配数字,原价
dm=re.findall('\d+',discount) #打折后
接着直接用减法(也就是replace()替换了)得到了打折后的价格,最后在用re匹配数字,因为 ¥
这个符号,爬取后也是乱码,所以这样也避免了乱码出现在数字前面的问题
之前写入文件的时候,因为编码问题报错,用了一大堆的 replace()
来替换,这次直接
file = open("steam.txt","a",encoding="gb18030")
就可以把文本输入到txt里了
后台回复 steam优惠爬虫
获取链接