python 爬虫中文乱码

使用requests

import requests
import chardet
from lxml import etree
from bs4 import BeautifulSoup

res = requests.get("要爬取的网页")
#chardet 自动检测字符的编码
res.encoding = chardet.detect(res.content)['encoding']

html = etree.HTML(res.text)
prefix = '网址的前缀'

#根据网页源码中的路径找到需要的结果
links = html.xpath('//div[@class="mod-news-3"]/ul/li/a/@href')

#获得网页源码中的链接
item = {}
for i in range(len(links)):
    url = links[i][1:]
    url = prefix+str(url)
    item[i] = url

使用 BeautifulSoup

from bs4 import BeautifulSoup
import requests


url = '要爬的网页'
r = requests.get(url)
r.encoding='UTF-8' #此处改为网页源码的编码格式,解决中文乱码
demo = r.text  # 服务器返回响应
soup = BeautifulSoup(demo, "html.parser")
"""
demo 表示被解析的html格式的内容
html.parser表示解析用的解析器
"""
print(soup)  # 输出响应的html对象
print(soup.prettify())  # 使用prettify()格式化显示输出
print(soup.title)  # 获取html的title标签的信息
print(soup.a)  # 获取html的a标签的信息(soup.a默认获取第一个a标签,想获取全部就用for循环去遍历)
print(soup.a.name)   # 获取a标签的名字
print(soup.a.parent.name)   # a标签的父标签(上一级标签)的名字
print(soup.a.parent.parent.name)  # a标签的父标签的父标签的名字


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值