需要找到下一页链接的Python代码
我想知道如何找到下一个页面的链接,下面的脚本就是用来实现这个目的的。
有一个主要的div,类名是"abc",它包含了下一个页面的链接,链接是
www.abc.com #base url
www.abc.com/options/latest/121?n=0
这个页面能够收集选项的URL,并从中获取详细信息。这个页面里包含了下一个页面的链接,链接是
<p> <a href="/options/latest/121?n=20">suivant »</a> </p>
我能获取到这个链接,也能从中得到详细信息,但就是无法收集到下一个页面的链接,链接是
<p> <a href="/options/latest/121?n=20">suivant »</a> </p>
我想收集
<p> <a href="/options/latest/121?n=40">suivant »</a> </p>
我想一直获取到最后一页。
1 个回答
1
要从网页中获取下一个网址,你可以使用BeautifulSoup
这个工具:
import re
def get_next_url(soup):
for div in soup.find_all('div', 'abc'):
a = div.find('a', href=re.compile('^/options/latest/'),
text=re.compile('suivant'))
if a is not None:
return a['href']
要切换到下一页:
from urllib2 import urlopen
from bs4 import BeautifulSoup # $ pip install beautifulsoup4
link = '/first/page'
while link:
print(link)
page = urlopen('http://example.com' + link)
soup = BeautifulSoup(page, from_encoding=page.info().getparam('charset'))
link = get_next_url(soup)