相关文章推荐
豪情万千的豆腐  ·  python ...·  3 天前    · 
爱看书的核桃  ·  python ...·  3 天前    · 
安静的香菇  ·  Pybel转换分子文件格式·  昨天    · 
逆袭的黑框眼镜  ·  PolarDB ...·  9 月前    · 
坚强的领结  ·  MySQL ...·  1 年前    · 
resp = requests.get((f"https://store.steampowered.com/appreviews/{appid}?cursor={nextCursor}&language=schinese&day_range=365&review_type=all&purchase_type=all&filter=recent"),timeout=5).json() except Exception as e: print(f"request failed:请求评论失败,尝试重新拉取...{reloadDataNum}") resp = "" isEnd = True reloadDataNum = reloadDataNum + 1 time.sleep(1) if isEnd : return isEnd reloadDataNum = 0 #reset print(f"request completed , data list len ={len(listAllContent)}") if lastedNum == len(listAllContent): totalEndNum = totalEndNum + 1 print(f"request failed:请求不到更多评论...{totalEndNum}") if totalEndNum >= reloadDataNumMax : print(f"结束请求...") isEnd = True reloadDataNum = 5 time.sleep(1) return isEnd else: lastedNum = len(listAllContent) totalEndNum = 0 cursor = resp["cursor"] cursor = cursor.replace("+","%2B") nextCursor = cursor html = resp["html"] #本页评论数据 soup= BeautifulSoup(html,"lxml") #请求成功 #解析 用户名 listName = [] listRecommend = [] listTime = [] listComment = [] for business in soup.find_all('div', class_="persona_name"): for bb in business.find_all('a') : listName.append(bb.string) #解析 是否推荐 for business in soup.find_all('div', class_="title ellipsis"): listRecommend.append(business.string) #解析 游戏时长 for business in soup.find_all('div', class_="hours ellipsis"): text1 = business.text.replace("\r\n\t\t\t\t\t\t","") text2 = text1.replace("\t\t\t\t\t\t\t\t\t\t\t","") listTime.append(text2) #解析 游戏评论 for business in soup.find_all('div', class_="content"): text1 = business.text.replace("\r\n\t\t\t\t\t","") text2 = text1.replace("\t\t\t\t\t\n","") listComment.append(text2) # all data for number in range(0,len(listComment)) : list1 = [] list1.append(listName[number]) list1.append(listRecommend[number]) list1.append(listTime[number]) list1.append(listComment[number]) listAllContent.append(list1) return isEnd

URL解析

请求的URL格式:https://store.steampowered.com/appreviews/{appid}?cursor={nextCursor}&language=schinese&day_range=365&review_type=all&purchase_type=all&filter=recent

appid:应用ID

nextCursor:用来索引下一页评论的下标,初始值等于*,下一页的值从请求的页面中可以拿到,这个值的键为"cursor"。

因此通过这个URL可以一直动态的请求到所有的评论数据。

if __name__ == '__main__':
    getGameName()
    while(len(listAllContent)<(int)(maxDataSize)):
        checkExit = getInitCursorValue()
        time.sleep(0.5)
        if checkExit == True :
            if reloadDataNum >= 5 :
                print("连接超时 5 次,结束")
                break
    fun2(listAllContent)
    time.sleep(1)

测试:拉取PUBG100条评论

工程链接: Ackerman1998/Craw-SteamComment (github.com)

python版本:3.7.0

请求的URL格式:https://store.steampowered.com/appreviews/{appid}?nextCursor:用来索引下一页评论的下标,初始值等于*,下一页的值从请求的页面中可以拿到,这个值的键为"cursor"。因此通过这个URL可以一直动态的请求到所有的评论数据。 python SalienSnake.py [--token <token>] [--file <filename>] [--language <language>] [--list-planets] [--debug] -t,--token(单帐户模式) -来自令牌值 -f, --file (多帐户模式) -带有令牌的文件(每行一个) -l, --list -planets-打印带有行星名称和ID的列表 Steam 评论 编辑器让您可以轻松地实时创建和修改您的 评论 ,而无需手动应用 Steam 复杂的标记标签。 只需输入您的 评论 ,点击“复制到剪贴板”,然后将其粘贴到 Steam 中即可! 虽然标记是自动应用的,但目前有一些元素可能需要您在发布 评论 之前进行修改。 默认情况下,块引用的作者值为“author”。 根据您的喜好修改它,或完全省略它。 文本编辑器是并使用 CSS 修改 该网站使用 颜色以及其他布局创意主要来自 Steam 自己的网站: 完全欢迎对该项目的所有贡献。 任何可以改进编辑器、网站性能、布局或修复错误的东西都可能与基础项目合并。 def test_commentgetlist(self): loginToken = self.test_login() url = "https://xxx.xxx.com.cn/api/comment.getlist" data = {"userId": "ceshi", "contentId": "XXXX", "page": "1", "loginToken": loginTok import requests import re url=‘https:// steam community.com/market/listings/730/AK-47 | Redline (Field-Tested)’ headers={ ‘user-agent’:‘Mozilla/5.0 (Linu...
在不登录的情况下频繁访问 steam 市场很容易被禁止访问,由于 steam 社区市场被墙了,所以需要挂vpn才能正常爬数据 首先挂好VPN,登录网页版 steam ,得到cookies和user-agent的内容,然后复制到headers中的cookies和user-agent位置上 设置好相关的路径后就可以了 得到的数据会保存到csv文件中 csgo的每一种箱子都会有一个对应的id,得到相应的ID然后保...
如果您想在 Python ATS 中 获取 Python 的版本信息,可以使用 `sys` 模块中的 `version_info` 属性来 获取 。具体来说,您可以使用以下代码来 获取 Python 的版本信息: ``` python import sys # 获取 Python 版本信息 python _version = sys.version_info # 输出版本信息 print(' Python 版本信息:', python _version) `version_info` 是一个元组,包含了 Python 的主版本号、次版本号和微版本号等信息。通过这个方法,您可以 获取 Python 的版本信息,从而进行后续的操作。