网站不允许网页抓取 - 如何绕过?

时间:2021-07-05 04:47:11

标签: python html web-scraping beautifulsoup

我正在尝试抓取本网站的内容(请参阅下图以供参考):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

image

但是当我跑步时:

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 持有”等。

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

1 个答案:

答案 0 :(得分:1)

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

退房:https://www.toptal.com/python/web-scraping-with-python