Facebook の新しいグラフ検索では、クエリ トークンを使用して会社の現在の従業員を検索できます -現在の Google 従業員(たとえば)。
結果ページ ( http://www.facebook.com/search/104958162837/employees/present ) を Scrapy 経由でスクレイピングしたい。
最初の問題は、facebook が facebook ユーザーのみに情報へのアクセスを許可していたため、login.php に誘導することでした。したがって、この URL をスクレイピングする前に、scrapy を介してログインし、次にこの結果ページにログインしました。しかし、このページの http 応答は 200 ですが、データは廃棄されません。コードは次のとおりです。
import sys
from scrapy.spider import BaseSpider
from scrapy.http import FormRequest
from scrapy.selector import HtmlXPathSelector
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import HtmlXPathSelector
from scrapy.item import Item
from scrapy.http import Request
class DmozSpider(BaseSpider):
name = "test"
start_urls = ['https://www.facebook.com/login.php'];
task_urls = [query]
def parse(self, response):
return [FormRequest.from_response(response, formname='login_form',formdata={'email':'myemailid','pass':'myfbpassword'}, callback=self.after_login)]
def after_login(self,response):
if "authentication failed" in response.body:
self.log("Login failed",level=log.ERROR)
return
return Request(query, callback=self.page_parse)
def page_parse(self,response):
hxs = HtmlXPathSelector(response)
print hxs
items = hxs.select('//div[@class="_4_yl"]')
count = 0
print items
何を見逃した、または間違って実行した可能性がありますか?