[英]Extracting data from link changes language on retrieval
因此,我正在嘗試通過此鏈接從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>
謝謝!
我的第一個建議是在請求中添加一個Accept-Language http標頭。 如果那不能解決問題,則可以嘗試復制瀏覽器發送的任何cookie。
如果使用鉻或鉻,請打開開發人員工具(F12)並轉到“網絡”選項卡,以確切查看要發送的標頭和cookie。 如果您使用Firebug,也可以在firefox中獲取該信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.