requests.get
、つまりrequests.get(url, headers)
とrequests.get(url)
の間にヘッダーを渡すときの違いを知りたいと思います。要求にヘッダーを渡すことの影響?
は、私は、コードのこれら2つがあります。
from lxml import html
from lxml import etree
import requests
import re
url = "http://www.amazon.in/SanDisk-micro-USB-connector-OTG-enabled-Android/dp/B00RBGYGMO"
page = requests.get(url)
tree = html.fromstring(page.text)
XPATH_IMAGE_SOURCE = '//*[@id="main-image-container"]//img/@src'
image_source = tree.xpath(XPATH_IMAGE_SOURCE)
print 'type: ',type(image_source[0])
print image_source[0]
そのアウトプットあなたが期待通りのURLがあるこの。しかし、この:
from lxml import html
from lxml import etree
import requests
import re
url = "http://www.amazon.in/SanDisk-micro-USB-connector-OTG-enabled-Android/dp/B00RBGYGMO"
headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36'}
page = requests.get(url, headers=headers)
tree = html.fromstring(page.text)
XPATH_IMAGE_SOURCE = '//*[@id="main-image-container"]//img/@src'
image_source = tree.xpath(XPATH_IMAGE_SOURCE)
print 'type: ',type(image_source[0])
print image_source[0]
が、私はこれを推測しているdata:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAoHBwgHBgoIC
で始まる出力を持っているが、レンダリングせずに、実際の画像、単なるデータです。どのように私はURLの形式でそれを保つことができる任意のアイデア?ヘッダーの存在が他のどのような方法で応答に影響を与えますか?
は
私は尋ねると周りに尋ねたと私は、ブラウザの名前を送信すると、サーバーは、ブラウザがデータを送信したと考えていることを知った。ブラウザにイメージを送信する機能があることを知っているが、ヘッダーがない場合はサーバーがわからない。デバイスがイメージをレンダリングする能力を持っている場合、私にURLを送信する。 –
私はまた、ウェブサイトがヘッダーで私をブロックする可能性は低いと読んでいます。 –
私はこれについてのドキュメントの確かなソースを見つけていません!、誰かがそれを手伝ってくれますか? –