如何设置Selenium
headers伪装浏览器
在使用Selenium进行网络爬虫或者自动化测试时,有时候我们需要伪装浏览器以避免被目标网站识别为机器人或者爬虫。这时候,设置合适的UserAgent和其它请求头(headers)就显得尤为重要。以下是详细的步骤和方法:
UserAgent是一个特殊的字符串头,它包含了浏览器的信息,如操作系统、浏览器版本、渲染引擎等。服务器通过UserAgent来识别客户端的浏览器类型。因此,我们可以通过更改UserAgent来伪装浏览器。
除了UserAgent之外,我们还可以设置其他的请求头,如Accept、AcceptLanguage等。这些请求头可以帮助我们更好地模拟真实的浏览器行为。
在Firefox中,我们可以使用webdriver.FirefoxProfile()来设置浏览器的偏好设置,其中包括UserAgent。例如:
```python
from
selenium
import
webdriver
from
time
import
sleep
ua
=
'Mozilla/5.0(iPhone;CPUiPhoneOS10_0_1likeMacOSX)AppleWebKit/602.1.50(KHTML,likeGecko)Mobile/14A403MicroMessenger/6.3.27NetType/WIFILanguage/zh_CN'
profile
=
webdriver.FirefoxProfile()
profile.set_preference('general.useragent.override',
ua)
driver
=
webdriver.Firefox(firefox_profile=profile)
driver.get('')
```
在Chrome中,我们可以使用webdriver.ChromeOptions()来设置Chrome的启动参数,其中包括UserAgent。例如:
```python
from
selenium
import
webdriver
from
time
import
sleep
ua
=
'Mozilla/5.0(iPhone;CPUiPhoneOS10_0_1likeMacOSX)AppleWebKit/602.1.50(KHTML,likeGecko)Mobile/14A403MicroMessenger/6.3.27NetType/WIFILanguage/zh_CN'
options
=
webdriver.ChromeOptions()
options.add_argument('useragent='
+
ua)
driver
=
webdriver.Chrome(options=options)
driver.get('')
```
如果我们想要更进一步地伪装浏览器,可以使用PhantomJSProxy来设置代理。例如:
```python
from
selenium
import
webdriver
from
selenium.webdriver.firefox.webdriver
import
FirefoxProfile
from
selenium.webdriver.chrome.options
import
Options
from
selenium.webdriver.common.proxy
import
Proxy,
ProxyType
from
time
import
sleep
proxy
=
Proxy()
proxy.proxy_type
=
ProxyType.MANUAL
proxy.http_proxy
=
'1.9.171.51:800'
options
=
Options()
options.add_argument('proxy=%s'
%
proxy.http_proxy)
options.add_argument('proxytype=http')
driver
=
webdriver.PhantomJS(proxy=options)
driver.get('')
```
以上就是在Selenium中设置headers伪装浏览器的方法,希望对您有所帮助。