从页面和下一页获取 URL
Getting URLs from Page and also the next pages
我正在尝试从页面中获取所有 url link。我正在使用这个 link
https://www.horizont.net/suche/?OK=suchen&OK=suchen&i_sortfl=pubdate&i_sortd=desc&i_q=der
此 link 基于显示不同文章的搜索查询。每页大约有 9 篇文章。所以我想从页面中获取所有 URL links 作为列表。
我想尝试的第二步是,当从页面中提取页面中的所有 link 时,它会自动打开第二个页面并从那里获取所有 link。
所以,s 大约有 15194 页,所以我想从这些页面获取文章的所有 hyperlinks。
到目前为止,我正在尝试这样做:
from BeautifulSoup import BeautifulSoup
import urllib2
import re
def getLinks(url):
html_page = urllib2.urlopen(url)
soup = BeautifulSoup(html_page)
links = []
for link in soup.findAll('a', attrs={'href': re.compile("^http://")}):
links.append(link.get('href'))
return links
print( getLinks("https://www.horizont.net/suche/?OK=suchen&OK=suchen&i_sortfl=pubdate&i_sortd=desc&i_q=der") )
我现在面临的问题是我从网站上获取了所有 url,但我只需要搜索结果以及搜索结果的下一页。
您可以使用 link 的元素 class 属性来提取您需要的 href:
for link in soup.findAll ('a', attrs = {'href': re.compile ("^ http: //")}, class _ = "ArticleTeaserSearchResultItem_link"):
如果您要浏览所有页面并收集所有 url 篇文章,我建议您更改 link 本身的页面值,直到 link 有效:
i = 1
urls = []
while True:
url = f"https://www.horizont.net/suche/?OK=1&i_q=der&i_sortfl=pubdate&i_sortd=desc&currPage={i}"
try:
def getLinks(url):
html_page = urllib2.urlopen(url)
soup = BeautifulSoup(html_page)
links = []
for link in soup.findAll('a', attrs={'href': re.compile("^http://")}, class_="ArticleTeaserSearchResultItem_link"):
links.append(link.get('href'))
return links
urls.append(getLinks(url))
except:
break
i += 1
目前我没有机会调试我的代码,但我希望我能帮助到你。祝你好运!
我正在尝试从页面中获取所有 url link。我正在使用这个 link
https://www.horizont.net/suche/?OK=suchen&OK=suchen&i_sortfl=pubdate&i_sortd=desc&i_q=der
此 link 基于显示不同文章的搜索查询。每页大约有 9 篇文章。所以我想从页面中获取所有 URL links 作为列表。
我想尝试的第二步是,当从页面中提取页面中的所有 link 时,它会自动打开第二个页面并从那里获取所有 link。
所以,s 大约有 15194 页,所以我想从这些页面获取文章的所有 hyperlinks。
到目前为止,我正在尝试这样做:
from BeautifulSoup import BeautifulSoup
import urllib2
import re
def getLinks(url):
html_page = urllib2.urlopen(url)
soup = BeautifulSoup(html_page)
links = []
for link in soup.findAll('a', attrs={'href': re.compile("^http://")}):
links.append(link.get('href'))
return links
print( getLinks("https://www.horizont.net/suche/?OK=suchen&OK=suchen&i_sortfl=pubdate&i_sortd=desc&i_q=der") )
我现在面临的问题是我从网站上获取了所有 url,但我只需要搜索结果以及搜索结果的下一页。
您可以使用 link 的元素 class 属性来提取您需要的 href:
for link in soup.findAll ('a', attrs = {'href': re.compile ("^ http: //")}, class _ = "ArticleTeaserSearchResultItem_link"):
如果您要浏览所有页面并收集所有 url 篇文章,我建议您更改 link 本身的页面值,直到 link 有效:
i = 1
urls = []
while True:
url = f"https://www.horizont.net/suche/?OK=1&i_q=der&i_sortfl=pubdate&i_sortd=desc&currPage={i}"
try:
def getLinks(url):
html_page = urllib2.urlopen(url)
soup = BeautifulSoup(html_page)
links = []
for link in soup.findAll('a', attrs={'href': re.compile("^http://")}, class_="ArticleTeaserSearchResultItem_link"):
links.append(link.get('href'))
return links
urls.append(getLinks(url))
except:
break
i += 1
目前我没有机会调试我的代码,但我希望我能帮助到你。祝你好运!