Python Scrapy:使用相同的规则重新爬行
我正在使用scrapy从tripAdvisor中提取评论 我的起点是酒店。例如:Python Scrapy:使用相同的规则重新爬行,python,scrapy,Python,Scrapy,我正在使用scrapy从tripAdvisor中提取评论 我的起点是酒店。例如: http://www.tripadvisor.com/Hotel_Review-g60763-d80075-Reviews-Amsterdam_Court_Hotel-New_York_City_New_York.html#REVIEWS. 在此页面中,我使用以下规则爬网到评论页面: rules = ( Rule(SgmlLinkExtractor(allow=("ShowUserReviews-g.*"
http://www.tripadvisor.com/Hotel_Review-g60763-d80075-Reviews-Amsterdam_Court_Hotel-New_York_City_New_York.html#REVIEWS.
在此页面中,我使用以下规则爬网到评论页面:
rules = (
Rule(SgmlLinkExtractor(allow=("ShowUserReviews-g.*",), restrict_xpaths=('//*[@id="REVIEWS"]/div[4]/div/div[2]/div/div/div[1]/a',), unique=True), callback='parse_item', follow= True),
Rule(SgmlLinkExtractor(allow=("ShowUserReviews-g.*",),restrict_xpaths=('//*[@id="REVIEWS"]/div[contains(@class,"deckTools btm")]',),unique=True),callback='parse_item',follow=True),
)
查看页面的一个示例:
http://www.tripadvisor.com/ShowUserReviews-g187514-d228523-r275442835-Hotel_Petit_Palace_Arturo_Soria-Madrid.html#REVIEWS
在每个评论页面的末尾,都有该酒店下一个评论页面的链接,编号如下:1、2、3、4。。。。。我可以使用我认为相同的规则,接下来的地址是相似的
按照此打印屏幕进行操作:
http://s16.postimg.org/w68m82ouc/Screenshot_from_2015_07_02_12_36_03.jpg
我的问题是:
Rule(SgmlLinkExtractor(allow=("ShowUserReviews-g.*",), restrict_xpaths=('//*[@id="REVIEWS"]/div[4]/div/div[2]/div/div/div[1]/a[text() = "Next"]',), unique=True), callback='parse_item', follow= True)
谢谢如果我将此规则添加到旧规则中,它会起作用吗?刮板将重新爬行到下一页?将其添加为第一条规则?我这么问是因为我读到了关于不止一条规则的问题。我怎么知道这些规则被检查的顺序呢?大多数情况下,我对此类网站有两个规则:一个是导航URL,另一个是详细网站。顺序并不重要——至少我从来没有这样认为过。因此,我将把你的scraper的第一条规则改为这个,Scrapy应该很乐意进入下一个页面,只要它们可用——并解析站点的主体。