所以我试图通过这个链接从 IMDB 中提取一些数据:
http://www.imdb.com/find?q=sleepers&s=all (看源码)
所以用这个正则表达式:
(?s:<td class=\"result_text\"> <a href=\"/title/.*?</td>)
然后这个:
(?s:(?i:(?<=[>])Sleepers.*?(?=</td>)))
我可以提取所有包含单词 Sleepers... 的匹配标题,这就是问题出现的地方:
因为我来自不同的国家,所以“Sleepers”的第一场比赛变成了“Los hijos de la calle”,如下所示:
<td class="result_text"> <a href="/title/tt0117665/?ref_=fn_al_tt_1" >Los hijos de la calle</a> (1996) <br/>aka <i>"Sleepers"</i> </td>
有没有办法可以强制使用 Java 建立 http 连接,这样就不会发生???
我在使用 HTMLUnit 时没有遇到这个问题,但是对于我正在做的事情来说它非常慢。
我正在使用代理,但如果我通过浏览器,页面(源代码)会以英文显示。
编辑:
通过 setRequestHeader() 设置所需的语言解决了这个问题:
conn = url.openConnection(proxy);
conn.setRequestProperty("Accept-Language", "en-US");
>> FOUND: <td class="result_text"> <a href="/title/tt0117665/?ref_=fn_al_tt_1" >Sleepers</a> (1996) </td>
谢谢!