我想看看我是否可以将 的输出传输urllib.request.urlopen()到一个文本文件来查看它。我尝试将输出解码为字符串,以便可以写入文件,但显然原始输出包含一些未正确转换为字符串的韩语字符。
到目前为止,我有:
from urllib.request import urlopen
openU = urlopen(myUrl)
pageH = openU.read()
openU.close()
stringU = pageH.decode("utf-8")
f=open("test.txt", "w+")
f.write(stringU)
Run Code Online (Sandbox Code Playgroud)
直到最后一步我才收到任何错误,此时它说:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\Chae\AppData\Local\Programs\Python\Python36\lib\encodings\cp1252.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 85-89: character maps to `<undefined>`
Run Code Online (Sandbox Code Playgroud)
有没有办法让字符串也包含韩语,或者如果没有,我如何跳过导致问题的字符并将字符串的其余部分写入文件?
我正在通过 Python 使用 Selenium 来尝试网络抓取。我几乎到了我想去的地方,但我遇到了我现在意识到的问题。所以我正在使用的元素是这样的:
<td class=" ui-datepicker-days-cell-over ui-datepicker-current-day ui-datepicker-today"
data-handler="selectDay" data-event="click" data-month="3" data-year="2018">
<a class="ui-state-default ui-state-highlight ui-state-active" href="#">10
</a>
</td>
Run Code Online (Sandbox Code Playgroud)
我的最终目标是获得 a 标签之间的 10 个。到目前为止,这是我的代码:
option = selenium.webdriver.ChromeOptions()
option.add_argument(" - incognito")
browser = webdriver.Chrome(executable_path=r"chromedriver.exe")
browser.get(myUrl)
calendar = browser.find_element_by_xpath(
'/html/body/main/section/div[2]/div[1]/div[2]/div[3]/div/div[1]/div/div[1]/div[2]')
viewCal = browser.find_element_by_name('choice_set[begin_at]')
viewCal.click()
row = calendar.find_elements_by_tag_name('tr')
column = calendar.find_elements_by_tag_name('td')
numb = column[0].find_element_by_tag_name('a')
numb.text
Run Code Online (Sandbox Code Playgroud)
numb.text返回''而不是 10。
我在这里做错了什么?
python selenium web-scraping python-3.x selenium-chromedriver