使用selenium page_source编码问题

时间:2015-08-14 13:31:12

标签: python selenium encoding

我一直在尝试从Apple Store前1000名获取数据。我一直在使用以下代码:

from selenium import webdriver
from bs4 import BeautifulSoup
import json

profile = webdriver.FirefoxProfile()
#Create a profile that makes my browser act like I am browsing from an iPad.
profile.set_preference("general.useragent.override", "iTunes-iPad/5.1.1 (64GB; dt:28)")
driver = webdriver.Firefox(profile)

driver.get('https://itunes.apple.com/WebObjects/MZStore.woa/wa/topChartFragmentData?cc=cn&genreId=6014&pageSize=5&popId=38&pageNumbers=0')

soup = BeautifulSoup((driver.page_source).encode('utf-16'))

dict_from_json = json.loads(soup.find("body").text)

print(dict_from_json)

出于某种原因,Firefox Webdriver以“Western”编码打开此页面(在“视图”下拉框中显示在“文本编码”下)。

这使得一些外国商店(即中国/日本)的所有商品都被“½æ°”æ‰æ‰ººººººº½½©'。如果我将此编码更改为Unicode选项,则一切正常。

我找不到通过Selenium用这个unicode“视图”来说服Firefox打开这个页面的方法。此外,我的脚本,我强制页面源编码为utf-8,仍然提供相同的奇怪字符。

我现在有点不知道如何以我想要的方式获得角色。

感谢你们给我的任何帮助!

0 个答案:

没有答案