我无法从网站上抓取数据。我可以抓取文本,但是当我尝试提取url时出现错误。
这是网址:https://www.horizont.net/suche/OK=1&i_q=der&i_sortfl=pubdate&i_sortd=desc&currPage=1
到目前为止,我正在使用它:
r=requests.get('https://www.horizont.net/suche/OK=1&i_q=der&i_sortfl=pubdate&i_sortd=desc&currPage=1')
c = r.content
soup = BeautifulSoup(c, 'html.parser')
all = soup.find_all('a', {'class': 'ArticleTeaserSearchResultItem_link'}, href = True)
for item in all:
print(item.find_all('h2')[0].text)
输出:
Schweizer Illustrierte und L'illustré rücken näher zusammen
"En Garde" und andere Geschichten über Mut und Beharrlichkeit
Hüttenzauber - der TV-Spot zu Weihnachten
Neuwagen in Deutschland müssen künftig DAB+ empfangen können
Schiess Werbig mit neuen Storys
Thjnk-Manager Sebastian Schlosser kommt als Chief Marketing Officer
Die Einreichungsphase läuft bis zum 30. November
Ipsos / Sinus / YouGov / Appinio / Axis / GfK
Pro Sieben Sat 1 plant Audio-Streaming-Plattform
Adidas und DFB blasen in Streifenoptik zum Angriff auf den EM-Titel
问题1: 我仍然无法从搜索中删除网址
问题2: 搜索结果包含大约15000页,我要抓取所有网址。
答案 0 :(得分:1)
提供的链接不正确。我更改了链接。 但是,由于您已经提到需要多达15000页,因此我为此做了循环。 要获取所有链接,您需要从链接获取href属性。
all_links=[]
for i in range(1,15001):
url='https://www.horizont.net/suche/?OK=1&i_q=der&i_sortfl=pubdate&i_sortd=desc&currPage={}'.format(i)
print("url: " +url)
r = requests.get(url)
c = r.content
soup = BeautifulSoup(c, 'html.parser')
all = soup.find_all('a', {'class': 'ArticleTeaserSearchResultItem_link'}, href=True)
for item in all:
print("https://www.horizont.net" + item['href'])
all_links.append("https://www.horizont.net" + item['href'])
print(all_links)
现在,如果最后执行print(all_links)
,您将获得15000页列表中的所有链接。