+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

使用旧的for循环中存储的项目名称,新的for循环中使用存储的项目名称

发布于2021-04-12 14:47     阅读(386)     评论(0)     点赞(1)     收藏(0)


0

1

2

3

4

5

6

7

我正在研究的该程序将搜索URL的多个路径(位于JSON列表中),并找到一个未被使用的路径(404页)。

问题=当我遇到404(当我可以找到错误div时),我想打印路径是什么。但是我想不出办法,因为项目名称似乎无法访问。

### Libraries ###
from bs4 import BeautifulSoup
import grequests
import requests
import json
import time

### User inputs ###
namelist = input('Your namelist: ')
print('---------------------------------------')
result = input('Output file: ')
print('---------------------------------------')

### Scrape ###
names = json.loads(open(namelist + '.json').read())
reqs = (grequests.get('https://steamcommunity.com/id/' + name) for name in names)
resp=grequests.imap(reqs, grequests.Pool(10))

for r in resp:
    soup = BeautifulSoup(r.text, 'lxml')
    findelement = soup.find_all('div', attrs={'class':"error_ctn"})

    if (findelement):
        print(name)

    else:
        print('trying')



解决方案


我认为您可以通过修改for循环的位置来做到这一点。我对您所使用的库不熟悉,因此在可能需要进一步修改代码的地方留下了一条评论,但可以使用以下方法:

names = json.loads(open(namelist + '.json').read())

for name in names:

    req = grequests.get('https://steamcommunity.com/id/' + name)

    # May need to modify this line since only passing one req, so are assured of only one response
    resp=grequests.imap(req, grequests.Pool(10))

    # There should only be one response now.

    soup = BeautifulSoup(resp.text, 'lxml')
    findelement = soup.find_all('div', attrs={'class':"error_ctn"})

    if (findelement):
        print(name)

    else:
        print('trying')

0

1

2

3

4

5

6

7

8

9



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接: https://www.pythonheidong.com/blog/article/936019/cb3eba445fabe04e1531/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

1 0
收藏该文
已收藏

评论内容:(最多支持255个字符)