加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python-3.x – 如何抓取分页页面?点击下一页时没有网址更改

发布时间:2020-12-20 13:10:15 所属栏目:Python 来源:网络整理
导读:我使用 python3.5和window10. 当我抓取一些页面时,我通常使用urlopen和’for’迭代来使用url更改.像下面的代码. from bs4 import BeautifulSoupimport urllibf = open('Slave.txt','w')for i in range(1,42): html = urllib.urlopen('http://xroads.virginia
我使用 python3.5和window10.

当我抓取一些页面时,我通常使用urlopen和’for’迭代来使用url更改.像下面的代码.

from bs4 import BeautifulSoup

import urllib
f = open('Slave.txt','w')

for i in range(1,42):
 html = urllib.urlopen('http://xroads.virginia.edu/~hyper/JACOBS/hjch'+str(i)+'.htm')
 soup = BeautifulSoup(html,"lxml")
 text = soup.getText()
 f.write(text.encode("utf-8"))

f.close()

但是,我遇到了麻烦,因为网址没有变化,虽然我点击了下一页并且网页的竞争对手被更改了,就像图片一样.网址没有变化,没有模式.
enter image description here

网址中没有信号我可以抓住网站的变化.

http://eungdapso.seoul.go.kr/Shr/Shr01/Shr01_lis.jsp

该网站在这里
我找到的线索是在分页课上.
我发现了下一页的一些链接,但我不知道如何使用此链接
在Beautifulsoup.我认为commonPagingPost是开发人员定义的功能.

<span class="number"><a href="javascript:;" 
class="on">1</a>&nbsp;&nbsp;
<a href="javascript:commonPagingPost('2','10','Shr01_lis.jsp');">2</a>&nbsp;&nbsp;
<a href="javascript:commonPagingPost('3','Shr01_lis.jsp');">3</a>&nbsp;&nbsp;
<a href="javascript:commonPagingPost('4','Shr01_lis.jsp');">4</a>&nbsp;&nbsp;
<a href="javascript:commonPagingPost('5','Shr01_lis.jsp');">5</a></span>

如何使用beutifulSoup4打开或抓取所有这些网站?
当我使用urlopen时,我只是得到了fisrt页面.

解决方法

你不能单独使用beautifulsoup,因为它不支持ajax.您需要使用类似 selenium,ghost.py或其他支持javascript的网络浏览器.

使用这些库,您将能够模拟这些链接上的单击,然后获取新加载的内容.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读