我想从div那里得到姓名和联系电话。div有时有一个跨度,有时有两个跨度,有时有三个跨度。我的期望是:
到目前为止,我的情况是:
// if you change url to url-1 and url-2 then you will see how it works.
url = "https://www.zillow.com/homedetails/19442-185th-Ave-SE-Renton-WA-
98058/54831221_zpid/"
#url-1 = "https://www.zillow.com/homedetails/20713-61st-St-E-Bonney-Lake-WA-98391/99371104_zpid/"
#url-2 = "https://www.zillow.com/homes/fsbo/house_type/121319389_zpid/globalrelevanceex_sort/47.465758,-122.259207,47.404798,-122.398424_rect/12_zm/5f9305c92cX1-CRbri51bo8epha_yly1g_crid/0_mmm/"
browser = webdriver.Firefox()
browser.get(url)
time.sleep(5)
soup = bs4.BeautifulSoup(browser.page_source,'html.parser')
contacts = browser.find_elements_by_css_selector("span.listing-field")
contact_name = []
contact_phone = "N/A"
contact_web = "N/A"
for i in range(0, len(contacts)):
if len(contacts[i].find_elements_by_tag_name("a")) > 0:
contact_web =
contacts[i].find_element_by_tag_name("a").get_attribute("href")
elif re.search("\\(\\d+\\)\\s+\\d+-\\d+", contacts[i].text):
contact_phone = contacts[i].text
else:
contact_name.append(contacts[i].text)
print(contact_phone) // Output: (253) 335-8690
print(contact_name) // Output: ['Sheetal Datta']
欢迎来到StackOverflow!您应该以编程的方式来处理这个问题,即使用条件。你已经说过了
如您所见,可以使用if-elif-else语句在Python中将上述伪代码实现为实际的条件语句。根据网页的结构,在尝试从中读取值之前,需要先检查
span
的值是否存在,这可以在SO post之后执行。你知道吗您可以使用
try: except:
检查联系人姓名和电话号码是否存在,然后相应地赋值。查看代码。。。你知道吗输出:
相关问题 更多 >
编程相关推荐