我目前正在尝试从网站上删除数据,但使用其下方的代码会返回一个空数组" []"由于某些原因。我似乎无法弄清楚背后的原因。当我检查生成的html时,似乎有很多\ t \ r \ n。我不确定我的代码似乎是什么问题。
url = "http://www.hkex.com.hk/eng/csm/price_movement_result.htm?location=priceMoveSearch&PageNo=1&SearchMethod=2&mkt=hk&LangCode=en&StockType=ALL&Ranking=ByMC&x=51&y=6"
html = requests.get(url)
soup = BeautifulSoup(html.text,'html.parser')
rows = soup.find_all('tr')
print rows
我试图解析非" .text"还有" lxml"而不是" html.parser"但结果却相同。
编辑:找到解决方法,使用selenium打开页面并以此方式获取源代码。
url = "http://www.hkex.com.hk/eng/csm/price_movement_result.htm?location=priceMoveSearch&PageNo=1&SearchMethod=2&mkt=hk&LangCode=en&StockType=ALL&Ranking=ByMC&x=51&y=6"
driver = webdriver.Firefox()
driver.get(url)
f = driver.page_source
soup = BeautifulSoup(f,'html.parser')
rows = soup.find_all('tr')
答案 0 :(得分:0)
文档中没有真正的HTML行。这些行是由JavaScript动态生成的。 BeautifulSoup无法执行JavaScript。
答案 1 :(得分:0)
如果您查看html.text变量的内容,您会注意到内容是动态生成的,并且没有任何有效元素。
答案 2 :(得分:0)
此页面使用javascript从服务器获取数据,您可以找到javascript使用此链接在chrome的dev_tools中请求数据,因此您可以请求此链接以获取所需的信息。
http://www.hkex.com.hk/eng/csm/ws/Result.asmx/GetData?location=priceMoveSearch&SearchMethod=2&LangCode=en&StockCode=&StockName=&Ranking=ByMC&StockType=ALL&mkt=hk&PageNo=1&ATypeSHEx=&AType=&FDD=&FMM=&FYYYY=&TDD=&TMM=&TYYYY=
无需使用硒