BeautifulSoup4解析页面的时候发现有一部分内容是乱码,刚开始还以为是pycharm的问题,后来发现可能问题不是出在pycharm上,因为普通的print打印的中文是没有问题的。测试代码如下:
def proxy_get(url): if is_use_proxy: socks.set_default_proxy(socks.SOCKS5, PROXY_HOST, PROXY_PORT) socket.socket = socks.socksocket req = requests.get(url, headers=HEADERS) return req.text def get_sub_pages_test(url): ''' http://www.meitulu.cn/t/shishen/ :param url: :return: ''' bs = BeautifulSoup(proxy_get(url), "html.parser") boxes = bs.find('div', class_='boxs') lis = boxes.find_all('li') log_text('PAGE', '开始分析页面链接', is_begin=True) for l in lis: p = l.find('p', class_='p_title') print( p.text)
后来想到可能是网络请求编码导致的,那么只要修改请求代码添加编码信息即可。
def proxy_get(url): if is_use_proxy: socks.set_default_proxy(socks.SOCKS5, PROXY_HOST, PROXY_PORT) socket.socket = socks.socksocket req = requests.get(url, headers=HEADERS) req.encoding = 'utf-8' #设置编码格式 return req.text
此时再去请求就ok了。