我正在尝试抓取 xml database these addresses 的链接列表。 (第二个链接是一个示例页面,实际上包含一些地址。许多链接不包含。)
我能够检索我想要爬行的初始链接列表,但我似乎无法更进一步并提取我正在寻找的最终信息(地址)。
我认为我的语法有错误,我尝试使用 beautiful soup 和 Python 包含的库来抓取它,但它不起作用。
汤:
from bs4 import BeautifulSoup
import requests
import re
resultsdict = {}
companyname = []
url1 = 'http://www.agenzia-interinale.it/sitemap-5.xml'
html = requests.get(url1).text
bs = BeautifulSoup(html)
# find the links to companies
company_menu = bs.find_all('loc')
for company in company_menu:
data = bs.find("html",{"i"})
print data
非第三方:
import requests
import xml.etree.ElementTree as et
req = requests.get('http://www.agenzia-interinale.it/sitemap-5.xml')
root = et.fromstring(req.content)
for i in root:
print i[0].text
任何意见都值得赞赏!谢谢。
最佳答案
你的语法没问题。您只需点击首页中的这些链接,米兰页面的外观如下:
from bs4 import BeautifulSoup
import requests
import re
resultsdict = {}
companyname = []
url1 = 'http://www.agenzia-interinale.it/sitemap-5.xml'
html = requests.get(url1).text
bs = BeautifulSoup(html)
company_menu = bs.find_all('loc')
for item in company_menu:
if 'milano' in item.text:
subpage = requests.get(item.text)
subsoup = BeautifulSoup(subpage.text)
adresses = subsoup.find_all(class_='riquadro_agenzia_off')
for adress in adresses:
companyname.append(adress.text)
print companyname
要获取所有地址,您只需删除代码中的 if 'milano' block 即可。我不知道它们是否都按照一致的规则进行格式化,因为 milano 地址位于 class="riquandro_agenzia_off"的 div 下,如果其他子页面也以这种方式格式化,那么它应该可以工作。无论如何,这应该让你开始。希望能帮助到你。
关于python - 尝试使用 Beautiful Soup 或 ElementTree 从链接的迭代列表中抓取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20750595/