【问题标题】:Avoiding local version when scraping website meta data抓取网站元数据时避免使用本地版本
【发布时间】:2019-06-13 22:00:22
【问题描述】:

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

这是我目前正在做的事情:

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,但这似乎很麻烦。

【问题讨论】:

标签: python-3.x web-scraping python-requests


【解决方案1】:

可以在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"/>]

fr 给我法语:

import requests
from bs4 import BeautifulSoup

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

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="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"/>]

【讨论】:

    猜你喜欢
    • 2022-01-24
    • 2023-03-23
    • 2011-01-05
    • 2019-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-23
    • 1970-01-01
    相关资源
    最近更新 更多