【发布时间】:2017-12-05 05:22:42
【问题描述】:
我是 python 编程和网络爬虫的新手,我能够从网站上获取相关信息,但它只生成一个元素,其中包含列表中所需的所有信息。问题是我无法删除这个元素列表中不需要的东西。我不确定是否可以从单个元素列表中执行此操作。是否有任何方法可以创建 python 字典,如下例所示:
{Kabul: River Kabul, Tirana: River Tirane, etc}
任何帮助将不胜感激。提前致谢。
from bs4 import BeautifulSoup
import urllib.request
url = "https://sites.google.com/site/worldfactsinc/rivers-of-the-world-s-capital-cities"
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.80 Safari/537.36'}
req = urllib.request.Request(url, headers=headers)
resp = urllib.request.urlopen(req)
html = resp.read()
soup = BeautifulSoup(html, "html.parser")
attr = {"class":"sites-layout-tile sites-tile-name-content-1"}
rivers = soup.find_all(["table", "tr", "td","div","div","div"], attrs=attr)
data = [div.text for div in rivers]
print(data[0])
【问题讨论】:
-
这个元素列表是什么样的?您返回的实际数据是什么(或至少是一个示例子集)?
-
国家 - 首都 - 阿富汗河 - 喀布尔 - 喀布尔河。阿尔巴尼亚 - 地拉那 - 地拉那河。安道尔 - Andorra La Vella - The Gran Valira。阿根廷 - 布宜诺斯艾利斯 - 河床。 -
我不认为这是获取元素元素的正确方法。看stackoverflow.com/questions/15951591/…
-
@user8838477,仅在寻找
urllib+BeautifulSoup解决方案? -
不一定,任何可行的方法
标签: python web-scraping beautifulsoup