网站抓取未返回预期的html吗?

时间:2018-10-07 20:53:08

标签: c# html web web-scraping

曾经在购物应用程序上工作了一段时间(正在运行),现在正在寻求扩展功能,但是至少可以说我对网站元素/文件hierakis等的理解不足!

我正在阅读以下网址:https://minetilbud.dk/tilbudsaviser/aldi/1?id={E2193C06-1136-4ED7-9B66-693C3EB175FF}

我正在寻找的文字部分包括“每公斤30,-”。但是,当我以编程方式阅读html时,我得到了大量不包含此特定所需文本的文本。

对不起,我的解释性问题很抱歉,但我不太确定自己在这里寻找的内容,我所寻找的文字是否可以隐藏? 在另一个文件中? 另一个网址?

任何能帮助我朝正确方向发展的技巧将不胜感激!

2 个答案:

答案 0 :(得分:0)

正如其他人所述,找不到详细信息的原因是因为它是在页面加载后使用ajax来获取数据的。提取的网址是...

https://minetilbud.dk/api/rest/product/%7BE2193C06-1136-4ED7-9B66-693C3EB175FF%7D

哪个返回...

{  
   "advert":{  
      "id":"{E2193C06-1136-4ED7-9B66-693C3EB175FF}",
      "title":"Peanuts",
      "description":"",
      "imageUrl":"https://img2minetilbud.azureedge.net/cloud/prod/MediaStorage/0/8/08B2BEFC5D7D42DEB3AA47CED86DFFD7/28_28_2_.jpg?crop=699,31,1109,814",
      "price":"6,-",
      "pricePercentage":"",
      "pricePerUnit":"",
      "priceVolume":"30,- per kg",
      "categoryMainTitle":"Snacknødder",
      "tradeLabels":[  

      ],
      "validFromFormatted":"5/10",
      "validToFormatted":"11/10",
      "validtext":"Gyldig t.o.m tor 11/10",
      "videoId":null,
      "videoType":null,
      "videoCoverImage":null,
      "fullAdvertUrl":"/tilbudsaviser/aldi/1/side/28",
      "duplicates":[  
         {  
            "id":"e2193c06-1136-4ed7-9b66-693c3eb175ff",
            "title":"Peanuts",
            "price":"6,-"
         }
      ],
      "relatedAdvertsUrl":"/Tilbudssoegning?qw=Snacknødder",
      "headCategoryTitle":"Dagligvarer",
      "categoryTitle":"Snacknødder",
      "brand":"Joe's",
      "categoryVariantTitles":"Peanuts",
      "keywords":"",
      "isMinimumPrice":false,
      "advertType":"Advert",
      "externalLinks":[  

      ]
   },
   "customer":{  
      "name":"ALDI",
      "headerImageUrl":"https://minetilbud2.azureedge.net/-/media/Images/Blurs/aldi.jpg",
      "headerTextColor":"#FFFFFF",
      "primaryColor":"#1f3480",
      "secondaryColor":"#111f60",
      "circleLogo":"https://minetilbud2.azureedge.net/-/media/Images/Runde-logoer/aldi.png",
      "catalogs":"/tilbudsaviser/aldi",
      "openingHours":"/tilbudsaviser/aldi/aabningstider",
      "linkText":"Køb varen online"
   },
   "dictionary":{  
      "adverts":"s tilbudsaviser",
      "advertsLinkV2":"Tilbudsaviser",
      "chooseAdvert":"Vælg",
      "openingHours":"Åbningstider",
      "shareOffer":"Del tilbud",
      "relatedOffers":"Lignende tilbud",
      "goToShop":"Gå til webshop",
      "readAdvert":"Læs tilbudsavisen",
      "videoText":"Se [[BRAND]]s video",
      "shareOnFacebook":"Del på Facebook",
      "tellAFriend":"Tip en ven",
      "savePercentage":"Spar",
      "from":"Fra"
   }
}

答案 1 :(得分:0)

看起来每个可点击的产品都有一个产品ID,可用于发出api请求以获取结构化JSON中的信息。该页面通过以以下内容开头的url,将带有第二个脚本标签的id加载到html的顶部:

https://cdn.ipaper.io/iPaper/Papers/0996f096-0e32-4fd4-b62b-f40e59e490ea/Enrichments/v1/

如果您抓取此网址,请避免获取包含产品ID的json。然后,您需要存储这些产品ID,然后使用这种格式对这些产品ID进行更多的获取请求。

https://minetilbud.dk/api/rest/product/%7BD1E5927C-6EDD-4F3C-A925-1141077F3D96%7D

所以 https://minetilbud.dk/api/rest/product/%7 {产品ID}%7D

您可以在chrome开发工具或提琴手中看到所有这些内容。