此网站回复
DEBUG: Crawled (520) <GET https://ddlfr.pw/> (referer: None)
我该如何解决?
我发布我的代码以进行解释
导入json
from scrapy import Spider, Request, Selector
class LoginSpider(Spider):
name = 'ddlfr.pw'
start_urls = ['https://ddlfr.pw/index.php?do=search']
numero = 0
def parse(self, response):
global numero
return scrapy.FormRequest.from_response(
response,
headers = {'user-agent' : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'},
formdata= {'dosearch': 'Rechercher', 'story': 'musso', 'do': 'search' , 'subaction': 'search', 'search_start': str(self.numero) , 'full_search': '0', 'result_form': '1'},
callback=self.after_login,
dont_filter = True
)
def after_login(self, response):
for title in response.xpath('//div[@class="short nl nl2"]'):
yield {'roman': title.extract()}
答案 0 :(得分:0)
是,因为网络需要有效的浏览器标题。而抓紧发送作为机器人的标头。
尝试使用这些标题:
headers = {
'user-agent' : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'
}
您可以在您的网站上看到抓取状态
答案 1 :(得分:0)
我建议您监视从Web浏览器发送表单时的Web浏览器的功能(开发人员工具的“网络”标签),并尝试使用Scrapy重现请求。
例如,在Firefox中,您可以使用curl
命令的形式从“网络”选项卡复制成功的请求。