【发布时间】:2020-09-22 17:40:25
【问题描述】:
我尝试通过 BS4 python 抓取动态网站:
https://www.nadlan.gov.il/?search=%D7%AA%D7%9C%20%D7%90%D7%91%D7%99%D7%91%20%20%D7%99%D7%A4%D7%95
我试过了:
from urllib.request import urlopen
from bs4 import BeautifulSoup
page = urlopen(wiki)
soup = BeautifulSoup("https://www.nadlan.gov.il/?search=תל אביב יפו")
我有两个问题:
-
网站是动态的,当我查看页面源时,我只看到 JavaScript 脚本看不到页面内容:
<script> document.write("<script src='scripts/dis/bundleJS.js?v=" + globalAppVersion + "'><\/script>") document.write("<script id='srcGovmap' src='https://new.govmap.gov.il/govmap/api/govmap.api.js?v='" + globalAppVersion + "'><\/script>") document.write("<script src='MainLoader.js?v=" + globalAppVersion + "'><\/script>") document.write("<script id='tld-search-srcipt' src='https://www.nadlan.gov.il/TldSearch/Scripts/ac.js?v=" + globalAppVersion + "'><\/script>"); </script> <script src="scripts/dis/accessibility/b1.js?v=3" type="text/javascript"></script> <script type="text/javascript"> accessibility_rtl = true; pixel_from_side = 20; pixel_from_start = 15; $(document).ready(function () { $('#accessibility_icon').attr('src', 'images/accessibility_icon.png') $('.accessibility_div_wrap>.btn_accessibility > span.accessibility_component').html('') }); -
当我打开网站时,加载数据需要几秒钟:
我如何通过 Selenium 解决这些问题?
【问题讨论】:
-
如果你想废弃一个动态网站,你应该使用 Selenium 而不是 BS4
-
或scrapy-splash,但最好使用js框架Puppeteer
标签: python selenium web-scraping beautifulsoup