我开始有点疯狂,所以希望那里的人可以提供帮助。我尝试使用import.io从购物网站获取产品的名称和价格。特别是,我正在对此网址进行测试:http://www.roddandgunn.com/clothing/knitwear/Urquhart%20Peak%20Knit/Urquhart-Peak-Knit.html
但是,我无法获得import.io来发布仅在此时获取产品名称的API。我已经手动覆盖了XPath,页面禁用了javascript,但每次我尝试发布时都会发现" API无法发布"错误。
这是我显示JSON时显示的文本:
{
"offset": 0,
"connectorGuid": "023f6433-7553-4d17-8036-924c9434c7ba",
"results": [
{
"clothing_name": "Westown Wool Coat"
}
],
"title": "Rodd & Gunn | Authentic Range - Westown Wool Coat",
"pageUrl": "http://www.roddandgunn.com/authentic-range/Westown%20Wool%20Coat/Westown-Wool-Coat.html"
}
(右侧):
{
"extraction": {
"resultPipeline": [
{
"configuration": {
"property": "clothing_name",
"xpaths": [
"//h1[@itemprop='name']"
]
}
}
],
"resultXPaths": [
"/html/body"
]
},
"urlProperties": [],
"version": 4,
"playback": {
"fixHtml": true,
"url": "${webpage/url}"
}
}
我不知道如何进一步简化它,因此我不确定为什么它拒绝让我为它发布API。有没有人有任何想法?
答案 0 :(得分:1)
import.io的服务器位于美国,这意味着他们使用美国的IP地址。
为什么这很重要?
如果您通过美国代理服务连接到URL(以反映import.io发布时所执行的操作),则显示的网站不同,import.io会被重定向,并且无法查看您的数据!
对此的修复很简单,(在网站上挖掘并使用几个代理后)
您可以通过在网址末尾添加以下内容来告诉服务器显示正确的网站版本:
isams=setsite&wsid=2
例如:
http://www.roddandgunn.com/clothing/knitwear/Urquhart%20Peak%20Knit/Urquhart-Peak-Knit.html?isams=setsite&wsid=2
它发布!
https://import.io/data/mine/?id=ae62a9b1-5adb-438e-a17b-78d528a1cde2
如果您想通过提取程序传递更多网址,则需要将isams=setsite&wsid=2
添加到要提取的其他网址。
答案 1 :(得分:0)
您可以在训练提取器时在页面上启用Javascript。 在检测最佳设置上,选择否,然后是。
检测最佳设置将首先关闭cookie和javascript来更改浏览器的设置,以便系统最有可能提取数据。