从这段代码中,当我将变量分配为循环上方的列表(release_list.append)时,为什么我会收到 dict_keys 属性错误,我相信这可能是一个缩进错误,因为在我尝试将其放入之前它正在工作它是自己的 def,但我无法让它工作。
import requests
import html
import json
import sys
from bs4 import BeautifulSoup
def removeDupes(seq):
# Not order preserving
keys = {}
for e in seq:
keys[e] = 1
return keys.keys()
def Add_VideoID_ToDB(url):
#url = sys.argv[1:]
print(url)
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36',}
response = requests.get(url, headers=headers)
if response.status_code == 200:
print(response.text)
searchStartText = "class=\"last-page\">"
searchStart = response.text.find(searchStartText) + len(searchStartText)
searchEndText = "</a>"
searchEnd = response.text.find(searchEndText, searchStart)
lastPage = response.text[searchStart:searchEnd]
print(lastPage)
parsed_html = BeautifulSoup(response.text)
trimmed_html = parsed_html.body.find_all('div', attrs={'class':'thumb-block'})
for div in trimmed_html:
links = div.findAll('a')
ids = div.findAll('id')
for idfound in ids:
print(idfound['data-id'])
#print(links[0]) section html
release_list = []
release_dictionary = {}
sorted_list = []
for a in links:
if (a['href'][:6]) == "/video":
print("link : " + a['href'])
release_list.append(a['href'])
release_list = removeDupes(release_list)
sorted_list = list(release_list)
我尝试将代码移动到不同的缩进块中,但没有任何效果
您需要更新
key.keys()
更新部分:removeDupes()
def removeDupes(seq):
seen = set()
return [x for x in seq if not (x in seen or seen.add(x))]
对于链接上的 for 循环,缩进也是错误的
for div in trimmed_html:
links = div.findAll('a')
# your code
for a in links:
# your code