我如何下载动态页面的内容?

时间:2015-12-31 17:58:17

标签: python web-scraping scrapy

我使用scrapy下载此页面的内容:

http://www.bbb.org/atlanta/business-reviews/fence-contractors/summit-fence-in-acworth-ga-27501223/customer-reviews?cacheit=y

但是当我查看

response.body

评论的内容不存在,我指的是“负面体验(1评论)”的内容。说:"祝这家公司好运。布莱恩对我和我的丈夫非常粗鲁无礼。经过多次讨论我们想要的东西......"

scrapy shell 'http://www.bbb.org/central-texas/business-reviews/concrete-stamped-and-decorative/artistic-impressions-concrete-staining-in-new-braunfels-tx-90080290/Customer-Reviews' -s USER_AGENT='Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36'

content  = response.body

content.find('Good luck using this company')

返回:-1

我怎么能得到这些数据?

1 个答案:

答案 0 :(得分:1)

通过请求/ReadReviews端点并提供页面和体验类型来单独加载评论。例如,在提供的示例中,它将是:

http://www.bbb.org/central-texas/business-reviews/concrete-stamped-and-decorative/artistic-impressions-concrete-staining-in-new-braunfels-tx-90080290/ReadReviews?page=1&exp=-1

您需要在蜘蛛中执行的操作是向此端点生成/返回scrapy.Request并解析回调中的评论。

示例,如何获取审核详细信息:

for review in response.css("tr"): 
    review_detail = review.css("td.complaint-detail::text").extract_first()
    print(review_detail)