【发布时间】:2015-04-02 14:40:05
【问题描述】:
这是我的蜘蛛,我只能得到第一个元素结果(Praxy Paris)。我需要在大多数评论页面中获取所有数据。如何获得?
from scrapy.spider import BaseSpider
from selenium import webdriver
class SeleSpider(BaseSpider):
name = "see"
start_urls = ['https://www.facebook.com/HRCMallOfAmerica/reviews']
def __init__(self):
self.driver = webdriver.Firefox()
def parse(self, response):
self.driver.get(response.url)
self.driver.find_element_by_link_text("MOST RECENT").click()
self.driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(2)
elem = self.driver.find_elements_by_id("most_recent_reviews_list")
for i in elem:
x = i.find_element_by_tag_name("strong").text
print x
下一个代码试图获取最新页面的页面源,但它只显示请求的页面。
一旦通过 selenium click 函数处理链接,我需要使用 python 的 html 代码。我试过了,但它在driver.get(url)的url中抛出了html代码。
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import urllib,urllib2
f = open('x.html','w')
driver = webdriver.Firefox()
url = "https://www.facebook.com/HRCMallOfAmerica/reviews"
driver.get(url)
driver.find_element_by_link_text("MOST RECENT").click()
r=urllib.urlopen(url) // For URL what I have to insert
x=r.read()
print x
【问题讨论】:
-
抓取 facebook 是否违反其服务条款?
-
然后使用Facebook API如何获取评论,它可能会询问页面访问令牌。如何得到它
标签: python selenium selenium-webdriver scrapy