Python新手在这里练习我的技能。我遇到了一个路障,如果能得到一些帮助,我将非常高兴。我想做的是从电子表格中获取链接列表。从那里,Python将获取数据,提取特定类并将数据粘贴到ColB。问题是,当链接断开时,会出现一些实例,因此不会有数据被刮取。我曾经试着去解决这个问题,但它似乎不起作用。它似乎做的是,当错误发生时,它只是跳过写入数据,然后继续将数据写入错误的单元格。这是我的密码:
credentials = ServiceAccountCredentials.from_json_keyfile_name('Te....4e.json', scope)
gc = gspread.authorize(credentials)
#selects the spreadsheet
sh = gc.open_by_url('https://docs.google.com/spreadsheets/d/1u7....0')
worksheet = sh.worksheet('Keywords')
colvalue = "A"
rownumber = 2
updaterowvalue = 2
while rownumber <100:
try:
val = worksheet.acell(colvalue +str(rownumber)).value
rownumber += 1
url = val
#scrape elements
response = requests.get(url)
soup = BeautifulSoup(response.content, "html.parser")
#print titles only
h1 = soup.find("h1", class_= "sg-text--headline")
updatecolvalue = "B"
worksheet.update_acell(updatecolvalue +str(updaterowvalue), h1.get_text())
updaterowvalue +=1
except AttributeError:
pass
print('DONE')
我假设起始
worksheet.update_acell
行上的额外缩进是一个错误,因为您的代码是无效的问题是,当发生异常时,
updaterowvalue +=1
不会执行,这会导致结果与URL不同步解决这个问题很简单,只需停止使用
updaterowvalue
,只需在worksheet.update_acell()
调用中使用rownumber
。由于您希望结果与URL位于同一行中,因此updaterowvalue
是不必要的编写循环的一种更具python风格的方法是:
这也允许您消除
rownumber += 1
行相关问题 更多 >
编程相关推荐