我正在使用Selenium,Chrome从房地产上市网站中提取房屋信息。
每个页面有10个元素,包含每个房子的信息(页面上列出的10个房屋)。Requests和Urllib模块不能用于此目的。
一切正常,我从页面获取所需的所有数据。但是,我的For Loop总共需要45秒来处理10个房屋。有没有办法加快速度呢?我的代码是不是很草率?
我对python很新 - 我应该使用Threading
或者Java
也许?那些是我找到的解决方案,但我可以使用一些确认。我只使用Selenium进行测试。
我很欣赏每一个建议。提前致谢!
码:
while pagenum < 3:
driver.get(website.format(pagenum))
houses = driver.find_elements_by_class_name("search-result-content")
## len(houses) is 10
for item in houses:
st, pc1 = item.find_element_by_css_selector('h3.search-result-title').text.strip().split("\n")
## pc1= '1234 AB Testcity'
pc = pc1[:7]
## pc = '1234 AB'
ci = pc1[8:]
## ci = 'Testcity'
pr = item.find_element_by_css_selector('div.search-result-info-price').text
wo = item.find_element_by_class_name('search-result-kenmerken').find_elements_by_tag_name('span')[0].text
ka = item.find_element_by_class_name('search-result-info').find_element_by_xpath('//*[contains(text(),"rooms")]').text
mk = item.find_element_by_class_name('search-result-agent-name').text
ul = item.find_element_by_css_selector('a').get_attribute('href')
try:
po = item.find_element_by_class_name('search-result-details').find_elements_by_tag_name('span')[1].text
except Exception as e:
po = "-"
writer.writerow([st, pc, ci, pr, wo, po, ka, mk, ul])
发布于 2018-09-06 16:33:39
你可以看看Scrapy。这是快速网络抓取的好方法。
https://stackoverflow.com/questions/-100002574
复制相似问题