[英]Problems parsing a web page in python
我想解析一個網頁以便檢索有關它的信息(我的確切問題是檢索此列表中的所有項目: http : //www.computerhope.com/vdef.htm )。
但是,我不知道如何去做。
互聯網上的許多教程都以此(簡化) html5lib.parse(urlopen("http://www.computerhope.com/vdef.htm"))
: html5lib.parse(urlopen("http://www.computerhope.com/vdef.htm"))
但是在那之后,這些教程都沒有解釋如何瀏覽文檔以及轉到所需的html部分。
其他一些教程解釋了如何使用CSSSelector
進行操作,但是同樣,所有教程都不以網頁開頭,而是以字符串開頭(例如,這里: http : //lxml.de/cssselect.html )。
因此,我嘗試使用以下方法與網頁一起創建樹: fromstring(urlopen("http://www.computerhope.com/vdef.htm").read())
但出現此錯誤: lxml.etree.XMLSyntaxError: Specification mandate value for attribute itemscope, line 3, column 28
。 此錯誤是由於存在一個未指定的屬性(例如<input attribute></input>
)而導致的,但是由於我不控制該網頁,因此無法解決該問題。
因此,這里有一些問題可以解決我的問題:
謝謝 !
嘗試使用漂亮的湯,它具有一些出色的功能,並使得在Python中解析非常容易。
在https://www.crummy.com/software/BeautifulSoup/bs4/doc/中查看其文檔
編輯:
正如@mzjn所指出的,我沒有在答案中包括代碼示例(這是投反對票的原因),因為我認為OP必須自己弄清楚。 我想我可以幫他,所以這是代碼
from bs4 import BeautifulSoup
import requests
page = requests.get('http://www.computerhope.com/vdef.htm')
soup = BeautifulSoup(page.text)
tables = soup.findChildren('table')
for i in (tables[0].findAll('a')):
print(i.text)
它會打印出列表中的所有項目,希望OP會做出相應的調整。
至少現在我希望我的答案能被接受。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.