我编写了一个代码,用于从以下网站中提取移动模型
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
driver.get("http://www.kart123.com/mobiles/pr?p%5B%5D=sort%3Dfeatured&sid=tyy%2C4io&ref=659eb948-c365-492c-99ef-59bd9f0427c6")
elem=[]
elem=driver.find_elements_by_xpath('.//div[@class="pu-title fk-font-13"]')
for e in elem:
print e.text
一切正常,但问题出现在页面的末尾。它只显示第一页的内容。请你能帮我解决所有模型的问题。
答案 0 :(得分:1)
好的,这将是一个重大的黑客,但是这里...当你向下滚动时,通过点击一个ajax脚本向你提供更多的手机,每次给你20多个。它击中的脚本是:
注意你可以用你想要的
开始参数from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
num = 1
while num <=2450:
"""
This condition will need to be updated to the maximum number
of models you're interested in (or if you're feeling brave try to extract
this from the top of the page)
"""
driver.get("http://www.flipkart.com/mobiles/pr?p[]=sort%3Dpopularity&sid=tyy%2C4io&start=%f&ref=8aef4a5f-3429-45c9-8b0e-41b05a9e7d28&ajax=true" % num)
elem=[]
elem=driver.find_elements_by_xpath('.//div[@class="pu-title fk-font-13"]')
for e in elem:
print e.text
num += 20
你将获得127个请求,所以这将非常缓慢......
答案 1 :(得分:0)
您可以获得该页面的完整来源并根据它进行所有分析:
page_text = driver.page_source
页面应包含当前内容,包括JavaScript生成的内容。此刻要小心获取此内容,所有渲染都已完成(例如,您可能需要等待某些字符串的存在,最后会渲染)。