Python 3.x 在抓取网站元数据时避免本地版本

Python 3.x 在抓取网站元数据时避免本地版本,python-3.x,web-scraping,python-requests,Python 3.x,Web Scraping,Python Requests,我正在收集一些网站元数据。有些网站根据我的位置提供本地版本,我可以避免吗 以下是我目前正在做的事情: import requests from bs4 import BeautifulSoup source = requests.get('http://www.youtube.com').text source_soup = BeautifulSoup(source, 'lxml') current_description = source_soup.find_all('meta', attr

我正在收集一些网站元数据。有些网站根据我的位置提供本地版本,我可以避免吗

以下是我目前正在做的事情:

import requests
from bs4 import BeautifulSoup

source = requests.get('http://www.youtube.com').text
source_soup = BeautifulSoup(source, 'lxml')
current_description = source_soup.find_all('meta', attrs={'name': 'description'})
print(current_description)
结果是:

[<meta content="Auf YouTube findest du großartige Videos und erstklassige Musik. Außerdem kannst du eigene Inhalte hochladen und mit Freunden oder mit der ganzen Welt teilen." name="description"/>]
[]
这是我想要的,但对于德文版的网站。如果可能的话,我想要英文版,以避免使用不同的语言。由于我想浏览很多不同的网站,我实际上无法手动更改URL以强制使用英语或类似的语言


请求模块是否有解决方案?我唯一的另一个想法是使用VPN,但这似乎很麻烦。

您可以将其添加到headers参数中:

import requests
from bs4 import BeautifulSoup

headers = {'accept-language': 'en-US,en;q=0.9,en-GB;q=0.8'}

source = requests.get('http://www.youtube.com' ,headers=headers).text
source_soup = BeautifulSoup(source, 'lxml')
current_description = source_soup.find_all('meta', attrs={'name': 'description'})
print(current_description)
请注意,如果我将其更改为
de
,我将获得德语

import requests
from bs4 import BeautifulSoup

headers = {'accept-language': 'de'}

source = requests.get('http://www.youtube.com' ,headers=headers).text
source_soup = BeautifulSoup(source, 'lxml')
current_description = source_soup.find_all('meta', attrs={'name': 'description'})
print(current_description)
输出:

[<meta content="Auf YouTube findest du großartige Videos und erstklassige Musik. Außerdem kannst du eigene Inhalte hochladen und mit Freunden oder mit der ganzen Welt teilen." name="description"/>]
[<meta content="Profitez des vidéos et de la musique que vous aimez, mettez en ligne des contenus originaux, et partagez-les avec vos amis, vos proches et le monde entier." name="description"/>]
输出:

[<meta content="Auf YouTube findest du großartige Videos und erstklassige Musik. Außerdem kannst du eigene Inhalte hochladen und mit Freunden oder mit der ganzen Welt teilen." name="description"/>]
[<meta content="Profitez des vidéos et de la musique que vous aimez, mettez en ligne des contenus originaux, et partagez-les avec vos amis, vos proches et le monde entier." name="description"/>]
[]

使用request.get函数的proxies关键字参数解决,请参阅