• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Python爬虫实战:爬取steam打折优惠数据

python 搞java代码 3年前 (2022-05-21) 22次浏览 已收录 0个评论

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

以下文章来源于云+社区,作者 Elapse

转载地址

<code><span class="hljs-attribute">https:<span class="hljs-comment">//www.gaodaima.<a href="https://www.gaodaima.com/tag/com" title="查看更多关于com的文章" target="_blank">com</a>/fei347795790?t=1</span></span></code>
www#gaodaima.com来源gaodai.ma#com搞##代!^码网搞代码

 

 

类似前言一样的东西

妈妈再也不用担心我不知道哪些游戏没有打折了,一键爬取steam优惠名单,就是写到钱的部分程序崩溃了,以至于只有游戏名

 

环境

环境需要 Python3.5.4的版本 需要的运行库有

  • BeautifulSoup(解析html,安装方法:(pip install BeautifulSoup)
  • requests(请求url,安装方法:(pip install requests)

代码部分

首先看一下,steam的网站结构

 

发现游戏名字是存在 <divclass=”responsive_search_name_combined”>下的再去看url链接https://store.steampowered.com/search/?specials=1&page=1其中page=1就是第一页的意思,所以整体思路就有了,先写一个页面的循环

pageid = 1
<span>while</span> pageid<599<span>:
    url </span>= <span>"</span><span>https://store.steampowered.com/search/?specials=1&page=</span><span>"</span> +<span> str(pageid)
    res </span>=<span> requests.get(url)
    soup </span>= bs4.BeautifulSoup(res.text)    contents = soup.select(<span>"</span><span>div[class="responsive_search_name_combined"]</span><span>"</span>)

 

这样,599页的steam游戏优惠的界面都会被requests请求一遍,并查找指定的元素,也就是存放游戏名的元素 接下来把游戏名抓取下来

<span>for</span> content <span>in</span><span> contents:
    name </span>= content.find(<span>"</span><span>span</span><span>"</span>,class_=<span>"</span><span>title</span><span>"</span><span>).string.strip()
    </span><span>print</span>(name)

 

运行一下

 

成功,右边,游戏名出来了,接下来把名字都保存成txt

 

要注意的是,有的游戏名很奇怪,有特殊符号,写不进去,那么就会报错,所以,添加一个异常处理就好了

下面贴出完整代码

 

爬虫的主要问题,基本就是字符串的编码问题,现在整理出来的,最好的方法应该就是直接把url编码的当作正常内容输入就好了

 


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python爬虫实战:爬取steam打折优惠数据

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址