【问题标题】:How to scrape and implement GET request data如何抓取和实现 GET 请求数据
【发布时间】:2013-12-26 13:49:59
【问题描述】:

我正在抓取www.bbc.com(用于测试目的),我无法让动态数据正常工作。网站上有一个天气小部件,我想正常工作。

如果你去这个网站:

http://albafacility.nl/api_test2?url=http%3A%2F%2Fwww.bbc.co.uk%2F&elm=website

你会看到我抓取的 bbc.com 版本。 如果您向下滚动到天气小部件,您将看到“编辑我的位置”如果您填写“阿姆斯特丹”,则会显示一个带有选项的下拉列表。如果您单击列表项,则不会发生任何事情。起初这是因为Access-Control-Allow-Origin,所以为了克服这个问题,我抓取了响应文件。这是来自原网站的调用:

http://www.bbc.co.uk/wwhp?module=weather&action=set&location_id=2759794

这是我自己的抓取版本:

http://albafacility.nl/weather?url=http%3A%2F%2Fwww.bbc.co.uk%2Fwwhp%3Fmodule%3Dweather%26action%3Dset%26location_id%3D2759794

如您所见,它们是相同的。所以我的问题是:为什么小部件中没有填充数据?我在控制台中没有看到错误。

【问题讨论】:

  • 谢谢,正在查看
  • @웃웃웃웃웃 你不是说url decode吗?因为我已经对它进行了编码(js),正如您在 URL 中看到的那样
  • 通过 url 发送数据时使用 url_encode 并使用 url_decode 进行解码
  • 我已经用encodeURIComponent(url) (javascript) 对其进行了编码,这不一样..?
  • 你能解释一下我为什么要编码/解码吗?正如您在最后一个网址中看到的那样,我得到了正确的结果

标签: php curl get web-scraping


【解决方案1】:

当我浏览您的页面时,您的 html 源代码非常糟糕。当你在你的 javascript 小部件上推送它时,你应该做一些如下的事情。

1) 将所有 \" 替换为 "
2) 将所有 \/ 替换为 /
3) \> 应该是 />
4)你的源代码中有 title="Light src =",它应该是 title="Light" src =" [注意我添加了一个引号(" ) 在光之后]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-28
    • 1970-01-01
    • 1970-01-01
    • 2021-04-03
    • 2013-11-01
    • 2021-05-09
    相关资源
    最近更新 更多