我想抓一个简单的页面,并认为我会使用OpenRefine来获取每个页面的HTML,然后解析它。我正在追踪特定标签的内容,但奇怪的是,OpenRefine没有显示该特定标签。这是OR第一次省略标签,我不知道为什么。以下是具体内容:
我正在抓取分配给以下博客上每篇博文的类别:
http://stripsjournal.canalblog.com/tag/Les%20Unes%20de%20Charlie%20Hebdo/p00-0.html
网页网址范围从p00-0.html到p330-0.html。
所以我有一个页面列,从0到330,我将其与URL结合起来:
“http://stripsjournal.canalblog.com/tag/Les%20Unes%20de%20Charlie%20Hebdo/p”+ value +“ - 0.html”
当我刮掉每个页面的HTML内容时,我希望看到以下内容(这是第一个条目的预期结果):
<h3>Les prédictions du mage Houellebecq - Charlie Hebdo N°1177 - 7 janvier 2015</h3>
<div class="itemfooter"> Thèmes >> <a href="http://stripsjournal.canalblog.com/tag/2022"
rel="tag">2022</a>,
<a href="http://stripsjournal.canalblog.com/tag/Houellebecq" rel="tag">Houellebecq</a>,
<a href="http://stripsjournal.canalblog.com/tag/Les%20Unes%20de%20Charlie%20Hebdo" rel="tag">Les
Unes de Charlie Hebdo</a>,
<a href="http://stripsjournal.canalblog.com/tag/livres" rel="tag">livres</a>,
<a href="http://stripsjournal.canalblog.com/tag/ramadan" rel="tag">ramadan</a>,
<a href="http://stripsjournal.canalblog.com/tag/religion" rel="tag">religion</a>,
<a href="http://stripsjournal.canalblog.com/tag/%C3%A9lections" rel="tag">élections</a>
</div>
<p><p style="text-align: center;"><a name="IMG_101392446"
href="http://p2.storage.canalblog.com/24/72/177230/101392446_o.jpg" target="_blank"><img
src="http://p2.storage.canalblog.com/24/72/177230/101392446.jpg" border="0" alt="01-1177-
Houellebecq" width="355" /></a></p>
相反,OR完全省略了标记并产生以下输出:
<h3>Les prédictions du mage Houellebecq - Charlie Hebdo N°1177 - 7 janvier 2015</h3>
<p><p style="text-align: center;"><a name="IMG_101392446"
href="http://p2.storage.canalblog.com/24/72/177230/101392446_o.jpg" target="_blank"><img
src="http://p2.storage.canalblog.com/24/72/177230/101392446.jpg" border="0" alt="01-1177-
Houellebecq" width="355" /></a></p>
我是否犯了一些荒谬的心不在焉的错误,或者与OR有关?
答案 0 :(得分:1)
OpenRefine并不排除任何东西,网站根据它认为客户端的内容发送不同的HTML。如果你看一下你收到的HTML,如果它和我得到的一样,你会发现它适用于网站的移动版本,而不是桌面版本
目前还不清楚他们使用什么作为触发移动版本发送的信号(OpenRefine并不能很好地控制HTML标题字段),所以你可能不会能够轻松解决它,但OpenRefine并没有放弃它收到的任何东西。
答案 1 :(得分:1)
这是适当的用户代理字符串或浏览器ID可能派上用场的地方。伪造一个发送请求的真实浏览器,而不是我们的默认用户代理字符串“OpenRefine / 2.6”。
如果使用开发版本或者有点破解它: 如果您想调整或设置用户代理也称浏览器ID,那么您可以在此底部执行此操作:https://github.com/OpenRefine/OpenRefine/blob/master/main/src/com/google/refine/RefineServlet.java
然后构建。
如果使用标准版本:
为简单起见,您可以导航到http://localhost:3333/preferences
并将名为“User-Agent”的属性设置为您想要的值,例如“Mozilla / 5.0(Windows NT 6.1)AppleWebKit / 537.36(KHTML,如Gecko)Chrome / 41.0.2228.0 Safari / 537.36“