我正在尝试抓一个简单的网站http://hosted.where2getit.com/sharpsiica/index.html?form=locator_search&sku=ARM355&addressline=53203&zip=53203
我已尝试使用以下代码来删除名称和地址:
import lxml.html as lh
from selenium import webdriver
import time
browser = webdriver.Firefox()
browser.get('http://hosted.where2getit.com/sharpsiica/index.html?form=locator_search&sku=ARM355&addressline=53203&zip=53203')
time.sleep(5)
content = browser.page_source
tree = lh.fromstring(content)
name=tree.xpath('//table[@id="collection_poi"]/tbody/tr/td[@align="left"]/a/text()')
address=tree.xpath('//table[@id="collection_poi"]/tbody/tr/td[@align="left"]/text()')
print(name,address)
我正确地得到了名字,但是为了解决我收到太多不需要的数据的问题。我只需要姓名和地址。
我做错了什么?
答案 0 :(得分:3)
剥离它 -
address=[c.strip() for c in address]
希望有所帮助。
但我只是想知道, 为什么要提取整个地址和名称列表? 你不想做类似的事吗,
import lxml.html as lh
from selenium import webdriver
import time
browser = webdriver.Firefox()
browser.get('http://hosted.where2getit.com/sharpsiica/index.html?form=locator_search&sku=ARM355&addressline=53203&zip=53203')
time.sleep(5)
content = browser.page_source
tree = lh.fromstring(content)
for tr in tree.xpath('//*[@id="collection_poi"]//tr'):
name=tr.xpath('.//*[@class="store_name"]//text()')
name=[c.strip() for c in name]
address=tr.xpath('.//*[@align="left"]//text()')
address=[c.strip() for c in address]
print(name,address)
您甚至可能想要从获得的列表中删除空元素,
address=filter(None, address)
print address
希望有所帮助: - )