首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >抓到了。如何解析520?

抓到了。如何解析520?
EN

Stack Overflow用户
提问于 2019-01-10 20:46:08
回答 2查看 279关注 0票数 0

此网站响应

代码语言:javascript
复制
DEBUG: Crawled (520) <GET https://ddlfr.pw/> (referer: None)

我该如何解决这个问题?

我发布了我的代码来解释

导入json

代码语言:javascript
复制
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()}
EN

回答 2

Stack Overflow用户

发布于 2019-01-10 21:03:51

是,因为web需要有效的浏览器标头。而scrapy作为机器人发送报头。

尝试使用以下标头:

代码语言:javascript
复制
headers = {
        'user-agent' : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'
    }

您可以在您的网站上查看爬行状态

票数 0
EN

Stack Overflow用户

发布于 2019-01-11 20:22:17

我建议您在从web浏览器(开发人员工具的网络选项卡)发送表单时监视web浏览器的操作,并尝试使用Scrapy重现请求。

例如,在Firefox中,您可以将成功的请求从Network选项卡复制为curl命令,这是请求的清晰表示。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54129054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档