我正在尝试解析this URL。
我正在使用请求和BeautifulSoup。
Python请求成功获取页面。
我尝试打印页面内容以查看是否有任何内容。它具有内容,但是不知道为什么BeautifulSoup无法解析它。卡住了,程序无法继续前进。
我也尝试使用lxml
作为解析器,但是没有用。
代码:
import requests
from bs4 import BeautifulSoup
url = "http://mnregaweb4.nic.in/netnrega/FTO/ResponseDetailStatusReport.aspx?lflag=&flg=W&page=s&state_name=BIHAR&state_code=05&district_name=ARARIA&district_code=0541&fin_year=2018-2019&typ=R&mode=B&source=national&Digest=RZw1g4RnMeHsOzbabiNGBg"
reference_page = requests.get(url)
print(" Total time to get page in seconds : "+str(reference_page.elapsed.total_seconds()))
print('\t Reference Page status : '+ str(reference_page))
print(reference_page.content)
reference_page_soup = BeautifulSoup(reference_page.content,'html.parser')
print("\n \t Page parsed")
答案 0 :(得分:0)
使用html.parser
代替使用lxml
。对我而言,整个过程不到5秒。
我用下面的代码。
import requests as rq
from bs4 import BeautifulSoup
url = 'http://mnregaweb4.nic.in/netnrega/FTO/FTOReport.aspx?page=s&mode=B&flg=W&state_name=BIHAR&state_code=05&fin_year=2018-2019&dstyp=B&source=national&Digest=2H3ATbXXBsabT72RmlXODw'
resp = rq.get(url).content
soup = BeautifulSoup(resp, "lxml")
对于我的Python安装,请求软件包的版本为 2.21.0 , BeautifulSoup4 的版本为 0.0.1 >和 lxml 的版本为 4.2.5 。 lxml解析器比html.parser快得多。
答案 1 :(得分:0)
有效的是,我更新了以下三个软件包。
我应该逐个升级软件包,以查看哪个软件包确实存在问题。
然后更新了以下软件包:
pip install requests --upgrade
pip install beautifulsoup --upgrade
pip install lxml --upgrade
答案 2 :(得分:-1)
因此,首先服务器响应非常慢。但是,即使从本地文件读取相同的内容并将其传递到BeautifulSoup
,也要花费很多时间。对我来说大约是4秒(BeautifulSoup
初始化时只有4秒而没有解析。很长时间)。我没有做任何研究。从BeautifulSoup.__init__
方法调用self._feed()
方法,另一方面调用LXMLTreeBuilder.feed()
(这是非常耗时的操作。这就是您{{ 1}}实例创建是如此缓慢。如果时间对您而言如此重要,请使用普通的BeautifulSoup
库。
LXML