【问题标题】:Scrapy handling session cookie or 302 in asp.net siteASP.NET 站点中的 Scrapy 处理会话 cookie 或 302
【发布时间】:2014-06-17 13:50:57
【问题描述】:

我正在尝试爬取用 asp.net 编写的 Web 应用程序。

我正在尝试执行搜索并抓取搜索结果页面。假设搜索页面是http://search.site.com/search/search.aspx

现在我的爬虫非常简单

class SitesearchSpider(Spider):
    name = 'sitecrawl'
    allowed_domains = ['search.site.org']
    start_urls = [
        "http://search.site.org/Search/Search.aspx"
    ]

def parse(self, response):
        self.log("Calling Parse Method", level=log.INFO)
        response = response.replace(body=response.body.replace("disabled",""))
        return [FormRequest(
            url="http://search.site.org/Search/Search.aspx",
            formdata={'ctl00$phContent$ucUnifiedSearch$txtIndvl': '2441386'},            
            callback=self.after_search)]

    def after_search(self, response):
        self.log("In after search", level=log.INFO)
        if "To begin your search" in response.body:
            self.log("unable to get result")            
        else:
            self.log(response.body)

但是不管是什么同一个页面(search.aspx)只返回给after_search回调而不是预期的searchresults.aspx与结果

这似乎是在浏览器中发生的事情

  1. 在其中一个字段中输入了搜索词
  2. 点击了搜索按钮
  3. 在表单提交到同一页面 (search.aspx) 时,我看到它返回 302 重定向到搜索结果页面
  4. 然后显示搜索结果页面
  5. 我看到这里使用了 asp.net 会话 cookie,因为一旦进行搜索,我就可以获取搜索结果页面 URL,例如 http://search.site.com/search/searchresults.aspx?key=searchkey&anothersearchparam=12 并打开任何选项卡并直接加载结果
  6. 如果我打开一个新会话并粘贴 URL,那么我将被重定向到搜索页面

现在我浏览了文档,但我不确定是否必须处理 302 或 aspnet 会话 cookie。任何帮助,将不胜感激。

【问题讨论】:

    标签: python python-2.7 web-scraping scrapy


    【解决方案1】:
    1. 您不必处理 302,scrapy 就可以了。
    2. 你可以调试cookie,设置DEBUG_COOKIE = 1
    3. 当您从浏览器搜索时,您是否检查过其他参数在 post 或 get 方法中发送,您必须将它们全部传递到表单数据中。

    我建议你使用 fron _response,比如:

    return [FormRequest.from_response(
            response,
            formdata={'ctl00$phContent$ucUnifiedSearch$txtIndvl': '2441386'},  
    

    【讨论】:

      猜你喜欢
      • 2012-06-28
      • 1970-01-01
      • 2011-06-26
      • 1970-01-01
      • 2018-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-18
      相关资源
      最近更新 更多