我想請與base64編碼有數據的URL,像這樣:使用Base64數據請求的URL編碼
http://www.somepage.com/es_e/bla_bla#eyJkYXRhIjp7ImNvdW50cnlJZCI6IkVTIiwicmVnaW9uSWQiOiI5MjAiLCJkdXJhdGlvbiI6NywibWluUGVyc29ucyI6MX0sImNvbmZpZyI6eyJwYWdlIjoiMCJ9fQ==
我要做的,是建立一個JSON對象,其編碼爲BASE64和其追加到URL這樣的:
new_data = {"data": {"countryId": "ES", "regionId": "920", "duration": 7, "minPersons": 1}, "config": {"page": 2}}
json_data = json.dumps(new_data)
new_url = "http://www.somepage.com/es_es/bla_bla#" + base64.b64encode(json_data)
yield scrapy.Request(url=new_url, callback=self.parse)
問題是,Scrapy抓取URL http://www.somepage.com/es_es/bla_bla
沒有編碼,並且附加了數據的僅此一部分... ...但是如果我貼new_url
成它顯示了我的瀏覽器我想要的數據編碼的結果!
不知道發生了什麼......任何人都可以幫我一把嗎?
查詢片段(URL的一部分在'#'之後)僅適用於瀏覽器。服務器忽略URL的那部分。 –
由瀏覽器加載的Javascript代碼可以自由使用查詢片段來改變行爲。例如。腳本可能會使用該部分來加載AJAX數據或以某種方式更改頁面。這都是客戶端,並且與服務器發送瀏覽器的內容無關。 –
所以,在服務器端沒有辦法達到同樣的效果?! @MartijnPieters – wj127