所以我正在学习使用atbwp,现在正在做一个程序,在该程序中打开网站上的前5个搜索结果。 一切都会进行,直到我必须获取每个热门结果的href并打开它为止。我收到此错误:
Traceback (most recent call last):
File "C:\Users\Asus\Desktop\pyhton\projects\emagSEARCH.py", line 33, in <module>
webbrowser.open(url)
File "C:\Users\Asus\AppData\Local\Programs\Python\Python38-32\lib\webbrowser.py", line 86, in open
if browser.open(url, new, autoraise):
File "C:\Users\Asus\AppData\Local\Programs\Python\Python38-32\lib\webbrowser.py", line 603, in open
os.startfile(url)
TypeError: startfile: filepath should be string, bytes or os.PathLike, not NoneType
这是html的外观:
<a href="https://comenzi.farmaciatei.ro/ingrijire-personala/ingrijire-corp-si-fata/tratamente-/the-no-brainer-set-the-ordinary-deciem-p344003"> The No-Brainer Set The Ordinary, Deciem</a>
这是我的代码的一部分,由于某些原因无法正常工作..
Soup=bs4.BeautifulSoup(res.text,'html.parser')
results= Soup.select('.item-title')
numberTabs=min(5,len(results))
print('Opening top '+str(numberTabs)+' top results...')
for i in range(numberTabs):
url=results[i].get('href')
webbrowser.open(url)
它执行应做的事情,直到for循环为止。它看起来很像书中的示例程序,所以我不明白为什么它不起作用。我在做什么错了?
答案 0 :(得分:0)
如果您想在href
标签下提取a
,请使用以下方法:
html = '<a href="https://comenzi.farmaciatei.ro/ingrijire-personala/ingrijire-corp-si-fata/tratamente-/the-no-brainer-set-the-ordinary-deciem-p344003"> The No-Brainer Set The Ordinary, Deciem</a>'
Soup=bs4.BeautifulSoup(html,'html.parser')
url = Soup.find('a')['href']
print(url)
webbrowser.open(url)
输出:
https://comenzi.farmaciatei.ro/ingrijire-personala/ingrijire-corp-si-fata/tratamente-/the-no-brainer-set-the-ordinary-deciem-p344003
U可以对所有a
标签执行相同操作,以获取所有hrefs
。