无法添加到字典-RuntimeError:字典在迭代过程中更改了大小

时间:2019-09-17 03:52:01

标签: python dictionary

我正在尝试向字典中添加一些条目,但是这样做很麻烦。看堆栈溢出的其他一些答案对我来说还不清楚,所以我问我的例子。 我尝试通过类似的问题来处理链接,但无济于事,并尝试使用.items但无济于事。

我试图复制我的字典,然后对其进行修改,但是我不确定如何做到这一点。

这是我的代码:

for link in ScrapeLinks.visited_urls:
            if(ScrapeLinks.visited_urls[link]=='False'):
                r = requests.get(ScrapeLinks.base_path+f'{link}', headers={
                'content-type': 'application/x-www-form-urlencoded',
                'X-Csrf-Token': f'{ScrapeLinks.csrf_token}',
                'Cookie': f'SID/newtshirt={ScrapeLinks.cookie}'
                })
                ScrapeLinks.visited_urls[link]=='True'
                print(link)
                print(r.status_code)
                print("**************************************")
                print("**************************************")
                print("**************************************")
                content = r.content
                soup = BeautifulSoup(content, 'lxml')
                links = 'a'
                for items in soup.find_all(links):
                    if items.has_attr('href'):
                        if items.attrs['href'].startswith('#') or not items.attrs['href'].startswith('/'):
                            pass
                        else:
                            ScrapeLinks.unique_urls.add(items.attrs['href'])
                            ScrapeLinks.visited_urls[items.attrs['href']]='False'
                print(ScrapeLinks.visited_urls)

我想做的是遍历字典,并在访问链接后对每个链接(键)执行get请求,我想将该值设置为True(因为已经访问了此链接)。访问每个链接后,我还想向字典添加新的键值对。要获取新的访问链接(最初将其设置为False。

任何想法如何做到这一点?

0 个答案:

没有答案