Python Selenium抓取数据如何实现姓名、电话、链接逐条对应输出
问题解决方法
你现有代码的问题是使用了两个独立的遍历循环,会先输出完全部姓名和电话,再输出所有链接,自然无法形成一一对应的关系。
推荐采用更稳妥的单循环方案,直接在每个item容器内查找对应链接,避免全局抓取链接列表可能出现的顺序错位问题:
item = browser.find_elements_by_xpath("//div[@class=' col-md-10']") for i in item: isim = i.find_element_by_css_selector("h4").text tel = i.find_element_by_css_selector("p").text # 直接从当前item内部定位对应链接,保证和当前条目完全匹配 link = i.find_element_by_xpath("./p/a[2]").get_attribute('href') # 逐条输出对应内容 print(isim) print(tel) print(link) # 如需条目之间空行分隔可添加下行 print()
如果确认全局抓取的item列表和url列表长度完全一致,也可以用zip函数打包两个列表同步遍历:
item = browser.find_elements_by_xpath("//div[@class=' col-md-10']") url = browser.find_elements_by_xpath("//div[@class=' col-md-10']/p/a[2]") for i, z in zip(item, url): isim = i.find_element_by_css_selector("h4").text tel = i.find_element_by_css_selector("p").text link = z.get_attribute('href') print(isim) print(tel) print(link) print()
内容的提问来源于stack exchange,提问作者steppe
相关产品推荐
相关产品推荐

