想要从搜索结果和下一页获取URL吗

2024-05-15 02:08:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我很难从网站上删除数据。我可以取消文本,但当我试图提取网址,然后得到错误

这是网址: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: 我仍然无法从搜索中删除URL

问题2: 搜索结果包括约15000页,我想取消所有的网址


Tags: inhttpsnetwwwokalldesc网址
1条回答
网友
1楼 · 发布于 2024-05-15 02:08:23

提供的链接不正确。我已更改链接。 然而,因为你已经提到你需要多达15000页,我已经为这个循环。 要获取所有链接,您需要从link获取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页的列表中的所有链接

相关问题 更多 >

    热门问题