我一直在尝试从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,仍然提供相同的奇怪字符。
我现在有点不知道如何以我想要的方式获得角色。
感谢你们给我的任何帮助!