我想抓一个网页的下一页 . 它们总共20页 . 我想用第一页的网址抓下一页 .
码:
b=[]
url="https://abcde.com/cate6-%E7%BE%8E%E5%A6%9D%E4%BF%9D%E9%A4%8A/"
res=requests.get(url)
soup = BeautifulSoup(res.text,"lxml")
b.append(url)
while True:
try:
dct = {"data-icon":"k"}
url=soup.find('',dct)
url=(url['href'])
print(url)
except TypeError:
break
if url:
url=("https://abcde.com"+url)
print(url)
b.append(url)
print(b)
下一页的HTML:
<li class="next"><a href="https://abcde.com/cate6-%E7%BE%8E%E5%A6%9D%E4%BF%9D%E9%A4%8A/?p=2" data-icon="k">next page</a></li>
最后一页的HTML:
<li class="next disabled"><a href="" data-icon="k">next page</a></li>
它只打印出第一页的网址 .
1 回答
你期望发生什么?您只需调用
requests.get(url)
一次,这是在您输入while True
循环之前 . 您需要将res=requests.get(url)
和所有后续行放在while循环中,以便您的代码实际获取后续页面 . 例如:这会每次都要求页面提供新的URL,因为
requests.get(url)
在循环内部,导致它在每次迭代时执行 .