首页 > 解决方案 > 网站不允许网络抓取 - 如何解决?

问题描述

我正在尝试抓取该网站的内容(请参阅下图以供参考):https ://likms.assembly.go.kr/law/lawsLawtInqyDetl1010.do?genActiontypeCd=2ACT1010&genDoctreattypeCd=DOCT2041&procWorkId=&workstepId=&repFlowId=&flowId=&workId =&workSno=&nextWinWd=%27&nextWinHg=%27%27&nextWinTypeAttr=%27&nextMappingId=&nextGenActiontypeCd=&viewGb=PROM&contSid=0008&contId=1983123000000002&cachePreid=ALL&genMenuId=menu_serv_nlaw_lawt_1030&back_viewGb=PROM&back_contSid=0008&back_contId=1983123000000002&back_cachePreid=ALL

图片

但是,当我运行时:

from bs4 import BeautifulSoup
from requests import get

url = "https://likms.assembly.go.kr/law/lawsLawtInqyDetl1010.do?genActiontypeCd=2ACT1010&genDoctreattypeCd=DOCT2041&procWorkId=&workstepId=&repFlowId=&flowId=&workId=&workSno=&nextWinWd=%27&nextWinHg=%27%27&nextWinTypeAttr=%27&nextMappingId=&nextGenActiontypeCd=&viewGb=PROM&contSid=0008&contId=1983123000000002&cachePreid=ALL&genMenuId=menu_serv_nlaw_lawt_1030&back_viewGb=PROM&back_contSid=0008&back_contId=1983123000000002&back_cachePreid=ALL"

BeautifulSoup(get(url).text, 'html.parser').find("div", {"class:", "article"})

而不是被刮掉的内容,我得到:

<div class="article">
<div class="loading">
<p>로딩중 입니다.</p>
<span style="font-weight: bold;">법령정보에 대한 법적효력은 관보에 있습니다.</span><br/>
<span style="font-weight: bold;">인터넷 법령정보는 참고자료로 활용하시기 바랍니다.</span>
</div>
</div>

文本中的内容类似于“加载中......此信息的合法权利由 XXX 持有”等。

这是否意味着我将无法抓取该网站,或者有什么办法可以解决这个问题?

标签: pythonhtmlweb-scrapingbeautifulsoup

解决方案


使用将执行 JavaScript 并呈现页面(无窗口)的无头浏览器。BeautifulSoup 只会解析服务器返回的初始 HTML,它不会执行任何 JavaScript。

查看:https ://www.toptal.com/python/web-scraping-with-python


推荐阅读