【发布时间】:2019-11-06 23:39:15
【问题描述】:
我想从这个网站上抓取名称和价格:
名称和价格都在div 标签内。
姓名:
价格
打印名称工作正常,但打印价格给我一个错误:
Traceback (most recent call last):
File "c:\File.py", line 37, in <module>
print(price.text)
File "C:\Python37\lib\encodings\cp1252.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u20b9' in position 0: character maps to <undefined>
代码:
from selenium import webdriver
from bs4 import BeautifulSoup
import pandas as pd
import requests
response = requests.get("https://www.flipkart.com/laptops/~buyback-guarantee-on-laptops-/pr?sid=6bo%2Cb5g&uniq")
soup = BeautifulSoup(response.text, 'html.parser')
for a in soup.findAll('a',href=True, attrs={'class':'_31qSD5'}):
name=a.find('div', attrs={'class':'_3wU53n'})
price=a.find('div', attrs={'class':'_1vC4OE _2rQ-NK'})
print(name.text)
它们之间有什么区别?
那么为什么其中一个给我一个错误而另一个没有呢?
【问题讨论】:
-
这能回答你的问题吗? Python and BeautifulSoup encoding issues
-
哪个版本的 Python?使用 3.6 或更高版本可能会更好。
-
Python 版本为 3.7.4
标签: python python-3.x web-scraping beautifulsoup