【问题标题】:php crawler - how to tackle urls with JSESSIONIDphp 爬虫 - 如何使用 JSESSIONID 处理 url
【发布时间】:2012-01-29 21:51:30
【问题描述】:

一个。我在 xyz.com/items/advsearch 上使用了一个简单的 url 爬虫 (How do I make a simple crawler in PHP?)。该页面列出了某人进行高级搜索后的结果(列出了所有结果)。我必须复制/废弃这些结果。现在,当我转到“Next>”页面时,它的 url 被编码并爬到“Next>”的 url 带我回到显示 0 个结果的高级搜索主页。

b.我注意到的另一件事是:在简单的人工 url 遍历中,'Next>' 的 url 中没有 jessionid 作为参数,而在使用 file_get_contents() 获取页面的 html 时,它有它。为什么会这样??

我发现很难弄乱我无法抓取的编码网址/会话内容!需要紧急帮助。

【问题讨论】:

  • 你的爬取方法是否处理cookies? (如果它是定向扫描和没有副作用的会话,则启用它。)
  • 不,它不处理 cookie。但我确实尝试了现有的 PHPCrawler 0.7 库(免费)。它确实处理 cookie。但问题在于jessionid。此爬虫还提取使用 sessionid 编码的 URL。如果我从 url 中删除 jsessionid,即使这样,页面也会返回主页。

标签: php url web-crawler jsessionid


【解决方案1】:

jsessionid 通常在 cookie 中存储和发送。如果 Java 应用程序注意到客户端可能不支持 cookie,则将其添加到链接 URL 只是一种后备方式。这可能是在使用 Web 浏览器遍历页面时没有将 jsessionid 参数添加到 URL 的原因,因为您的浏览器确实可以正确处理 cookie,而您的 PHP 脚本却没有。

【讨论】:

    猜你喜欢
    • 2016-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-27
    • 1970-01-01
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    相关资源
    最近更新 更多