如何使用带有Scrapy的admin-ajax.php从网站中抓取数据
我试图在该网站上搜集有关unibet赌场的评论: 正如我对其他评论源所做的那样,我使用Python上的Scrapy来使用下面的代码刮取评论:如何使用带有Scrapy的admin-ajax.php从网站中抓取数据,php,python,ajax,web-scraping,scrapy,Php,Python,Ajax,Web Scraping,Scrapy,我试图在该网站上搜集有关unibet赌场的评论: 正如我对其他评论源所做的那样,我使用Python上的Scrapy来使用下面的代码刮取评论: class slotRunner_spyder(scrapy.Spider): count=0 name = "slotRunner_spyder" start_urls = [ 'https://casinoplacard.com/unibet-casino-reviews-and-bonuses/' ] def parse(self,
class slotRunner_spyder(scrapy.Spider):
count=0
name = "slotRunner_spyder"
start_urls = [
'https://casinoplacard.com/unibet-casino-reviews-and-bonuses/'
]
def parse(self, response):
parsed_uri = urlparse(response.url)
domain = '{uri.scheme}://{uri.netloc}/'.format(uri=parsed_uri)
for review in response.css('div.rwp-users-reviews > div.rwp-u-review') :
self.count+=1
yield {
'name': review.css('td a::text').extract_first(),
'date': review.css('td small::text').extract_first(),
'review': review.css('div.rwp-u-review__content > div.rwp-u-review__comment').extract(),
'url' : response.url
}
print(self.count)
但对于那个网站来说,它不起作用。为了更好地理解,我引入了计数器(self.count),并发现它只进行了1次迭代,这是不正常的
然后,我花了一些时间研究了该网站的开发工具,发现在加载页面时,会自动使用URL执行XHR POST请求方法:
通过调查该请求,我发现182条评论数据如下:
预览>>数据>>评论
所以你们能帮我理解它是如何捕捉这些数据的吗
多谢各位 我终于找到了这样做的方法,我相信这不是最好的方法,但至少我做了我想做的事 因此,正如我在“预览”选项卡的问题中所说的,有我需要的所有数据。所以我要做的就是获取这些数据。为此,我理解当加载URL时,XHR POST请求是自动发出的,所以我只是试图强制python请求该URL
import requests
s = requests.Session()
# We get the URL into that session
s.get(url)
#Here is the imitation of the POST request
self.r = s.post(ajax_URL,data=param,headers=headers)`
您只需从DevTool的headers选项卡获取参数,然后表单数据就是您的参数。对于在标题选项卡中获得的标题,您可以搜索
用户代理,只需将所有内容粘贴到标题中。ajax URL就是我在问题中写的
希望这能帮助别人