问题描述
初学Python,目标是批量抓取深交所网站上的处罚详情,内容为带‘.pdf’的一个链接。网页(http://www.szse.cn/disclosure...)和对应的源码如下:
问题出现的环境背景及自己尝试过哪些方法
刚开始写的代码如下:
from urllib.request import urlopen
from bs4 import BeautifulSoup
html=urlopen('http://www.szse.cn/disclosure/listed/credit/record/index.html').read().decode('utf-8')
soup=BeautifulSoup(html,'html.parser')
link=soup.find_all('a',attrs={'href':'javascript:void(0);'})
执行结果是:
>>> link
[<a class="" href="javascript:void(0);">乐富基金子网站</a>, <a class="ml10" href="javascript:void(0);">固收子网站</a>, <a class="ml10" href="javascript:void(0);">投教子网站</a>]
并没有抓到想抓取的链接。
考虑到“encode-open”这个属性在源码中只出现了一次,改成了这样:
link=soup.find_all('a',attrs={'encode-open':re.compile(r'.*\.pdf')})
但是返回的是空列表:
>>> link
[]
请问如何才能抓取到这个链接呢?感谢
这个页面并不静态的,是js动态的加载的.
也就是说,你爬取到的仅仅是js渲染前的源码,而页面中的信息是js渲染后才出现的,所以你这样的方法是拿不到数据的