簡體   English   中英

在檢索時從鏈接更改語言中提取數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM