0

我想抓取这个网站的酒店协会数据,需要 CSS 选择器的帮助。如果您看到下图,我正在尝试使用 css 选择器从此处提取地址。

我要抓取的数据:20 West 29th StreetNew York, NY 10001

在此处输入图像描述

使用下一个兄弟方法

我知道我们可以使用+符号找到下一个兄弟,但这里的问题是地址文本没有任何attribute关联。我不想在xpath这里使用通用 css 选择器来查找所有兄弟姐妹,.hanyccompany然后从中提取文本。

谁能告诉我如何找到所有的兄弟姐妹class='hanyccompany

<span class="hanyccompany"><a href="http://www.acehotel.com/" target="_blank">ACE HOTEL NEW YORK</a></span><br />
20 West 29th Street<br />
New York, NY 10001<br />
4

1 回答 1

2

您可以使用 BeautifulSoup 轻松解析和提取数据。

from bs4 import BeautifulSoup
from mechanize import Browser

br = Browser()
br.addheaders = [('User-agent', 'Firefox')]
response = br.open("http://www.hanyc.org/members/hotels/")

web_data = response.read()

soup = BeautifulSoup(web_data, "html.parser")
tags = soup.find_all('span', attrs={"class": "hanyccompany"})

for tag in tags:
    print(tag.parent.text)
    print("------------------------------")

如果你打印跨度父级的文本,你会得到类似的东西

ACE HOTEL NEW YORK
20 West 29th Street
New York, NY 10001
Jan Rozenveld, Managing Director
(212) 679-2222
(212) 679-1947
jan.rozenveld@acehotel.com

...
于 2016-03-21T03:50:51.173 回答