iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python3 urllib 爬虫乱码问
  • 449
分享到

python3 urllib 爬虫乱码问

爬虫乱码urllib 2023-01-31 01:01:41 449人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

#!/usr/bin/env python # -*- coding: utf-8 -*- from bs4 import BeautifulSoup from urllib.request import urlopen ba

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from bs4 import BeautifulSoup
from urllib.request import urlopen

baseUrl = 'Http://www.51benGou.com'


def getCover(articleUrl):
    global baseUrl
    html = urlopen(baseUrl+articleUrl).read()
    bsObj = BeautifulSoup(html, 'lxml')
    try:
        # Find internal link of the cover.
        src = bsObj.find('div', {'class': 'cartoon-intro'}).find('img')['src']
        return src
    except AttributeError:
        return None


def getInfo(articleUrl):
    global baseUrl
    html = urlopen(baseUrl+articleUrl)
    bsObj = BeautifulSoup(html, 'lxml')
    try:
        # Find all infORMation.
        infos = bsObj.find('div', {'class': 'cartoon-intro'}).findAll('p', {'class': False})
        items = {}
        # Store in a dict.
        for info in infos[:7]:
            items[info.span.text] = info.text
        return list(items)
    except AttributeError:
        return None


print(getInfo('/cartoon/HuoYingRenZhe/'))

如上程序是一个基于笨狗漫画网的爬虫程序,运行后,发现得到的漫画基本信息输出为乱码。

<meta charset="gb2312">

经查看网页源码发现,这个网页使用了gb2312编码。经我目前学习的编码知识,在程序读取网页时,BeautifulSoup使用了默认的utf-8编码将gb2312编码的字节字符串解码为了Unicode。此时,就出现了乱码,并且可能因为对错误的忽略或者替代,信息已经发生了丢失。

为了解决这个问题,我们应该在使用BeautifulSoup之前,对urlopen得到的对象进行读取,然后使用gb2312编码进行解码,此时问题应该就解决了。

#!/usr/bin/env Python
# -*- coding: utf-8 -*-

from bs4 import BeautifulSoup
from urllib.request import urlopen

baseUrl = 'http://www.51bengou.com'


def getCover(articleUrl):
    global baseUrl
    html = urlopen(baseUrl+articleUrl).read().decode('gb2312', 'replace')
    bsObj = BeautifulSoup(html, 'lxml')
    try:
        # Find internal link of the cover.
        src = bsObj.find('div', {'class': 'cartoon-intro'}).find('img')['src']
        return src
    except AttributeError:
        return None


def getInfo(articleUrl):
    global baseUrl
    html = urlopen(baseUrl+articleUrl).read().decode('gb2312', 'replace')
    bsObj = BeautifulSoup(html, 'lxml')
    print(html)
    try:
        # Find all information.
        infos = bsObj.find('div', {'class': 'cartoon-intro'}).findAll('p', {'class': False})
        items = {}
        # Store in a dict.
        for info in infos[:7]:
            items[info.span.text] = info.text
        return list(items)
    except AttributeError:
        return None


print(getInfo('/cartoon/HuoYingRenZhe/'))

--结束END--

本文标题: python3 urllib 爬虫乱码问

本文链接: https://www.lsjlt.com/news/184135.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python3 urllib 爬虫乱码问
    #!/usr/bin/env python # -*- coding: utf-8 -*- from bs4 import BeautifulSoup from urllib.request import urlopen ba...
    99+
    2023-01-31
    爬虫 乱码 urllib
  • Python 爬虫 urllib模块:p
    本程序以爬取 'http://httpbin.org/post' 为例格式:  导入urllib.request  导入urllib.parse  数据编码处理,再设为utf-8编码:  bytes(urllib.parse.urlenco...
    99+
    2023-01-31
    爬虫 模块 Python
  • python爬虫实例(urllib&Be
    python 2.7.6urllib:发送报文并得到responseBeautifulSoup:解析报文的body(html)#encoding=UTF-8 from bs4 import BeautifulSoup from urllib...
    99+
    2023-01-31
    爬虫 实例 python
  • 【Python3爬虫】拉勾网爬虫
    一、思路分析:在之前写拉勾网的爬虫的时候,总是得到下面这个结果(真是头疼),当你看到下面这个结果的时候,也就意味着被反爬了,因为一些网站会有相应的反爬虫措施,例如很多网站会检测某一段时间某个IP的访问次数,如果访问频率太快以至于看起来不像正...
    99+
    2023-01-31
    爬虫 拉勾网
  • Python爬虫之urllib库详解
    目录一、说明:二、urllib四个模块组成:三、urllib.request1、urlopen函数2、response 响应类型3、Request对象 4、高级请求方式四、urlli...
    99+
    2024-04-02
  • Python3 爬虫 requests
    刚学Python爬虫不久,迫不及待的找了一个网站练手,新笔趣阁:一个小说网站。 安装Python以及必要的模块(requests,bs4),不了解requests和bs4的同学可以去官网看个大概之后再回来看教程 刚开始写爬虫的小白都有...
    99+
    2023-01-31
    爬虫 requests
  • Python爬虫中urllib库怎么用
    这篇文章给大家分享的是有关Python爬虫中urllib库怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、说明:urllib库是python内置的一个http请求库,requests库就是基于该库开发出来...
    99+
    2023-06-29
  • Python3网络爬虫实战-10、爬虫框
    我们直接用 Requests、Selenium 等库写爬虫,如果爬取量不是太大,速度要求不高,是完全可以满足需求的。但是写多了会发现其内部许多代码和组件是可以复用的,如果我们把这些组件抽离出来,将各个功能模块化,就慢慢会形成一个框架雏形,久...
    99+
    2023-01-31
    爬虫 实战 网络
  • Python3网络爬虫实战-11、爬虫框
    ScrapySplash 是一个 Scrapy 中支持 JavaScript 渲染的工具,本节来介绍一下它的安装方式。ScrapySplash 的安装分为两部分,一个是是 Splash 服务的安装,安装方式是通过 Docker,安装之后会...
    99+
    2023-01-31
    爬虫 实战 网络
  • Python3网络爬虫实战-15、爬虫基
    在写爬虫之前,还是需要了解一些爬虫的基础知识,如 HTTP 原理、网页的基础知识、爬虫的基本原理、Cookies 基本原理等。 那么本章内容就对一些在做爬虫之前所需要的基础知识做一些简单的总结。 在本节我们会详细了解 HTTP 的基本原理...
    99+
    2023-01-31
    爬虫 实战 网络
  • Python3网络爬虫(十一):爬虫黑科
    原文链接: Jack-Cui,http://blog.csdn.net/c406495762 运行平台: Windows Python版本: Python3.x IDE: Sublime text3 1 前言 近期,有些朋友问我一些关...
    99+
    2023-01-31
    爬虫 网络
  • Python爬虫技术栈 | urllib库&&urllib3库
    ❤️urllib库详解❤️ 每篇前言: 第一部分:urllib库 一、request模块:发送请求 1.urlopen() ...
    99+
    2023-09-10
    python 爬虫 urllib库urllib3库
  • Python3网络爬虫实战-17、爬虫基
    爬虫,即网络爬虫,我们可以把互联网就比作一张大网,而爬虫便是在网上爬行的蜘蛛,我们可以把网的节点比做一个个网页,爬虫爬到这就相当于访问了该页面获取了其信息,节点间的连线可以比做网页与网页之间的链接关系,这样蜘蛛通过一个节点后可以顺着节点连线...
    99+
    2023-01-31
    爬虫 实战 网络
  • nodejs爬虫遇到乱码怎么办
    这篇文章主要为大家展示了“nodejs爬虫遇到乱码怎么办”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“nodejs爬虫遇到乱码怎么办”这篇文章吧。使用nodej...
    99+
    2024-04-02
  • Python爬虫之Urllib库的基本使
    # get请求 import urllib.request response = urllib.request.urlopen("http://www.baidu.com") print(response.read().decode('...
    99+
    2023-01-30
    爬虫 Python Urllib
  • python3爬虫-通过requests
    import requests from fake_useragent import UserAgent from lxml import etree from urllib.parse import urljoin import py...
    99+
    2023-01-31
    爬虫 requests
  • 【Python3爬虫】常见反爬虫措施及解
    这一篇博客,是关于反反爬虫的,我会分享一些我遇到的反爬虫的措施,并且会分享我自己的解决办法。如果能对你有什么帮助的话,麻烦点一下推荐啦。   UserAgent中文名为用户代理,它使得服务器能够识别客户使用的操作系统及版本、CPU 类...
    99+
    2023-01-30
    爬虫 措施 常见
  • Python3 爬虫 scrapy框架
    上次用requests写的爬虫速度很感人,今天打算用scrapy框架来实现,看看速度如何。 第一步,安装scrapy,执行一下命令 pip install Scrapy 第二步,创建项目,执行一下命令 scrapy startproje...
    99+
    2023-01-31
    爬虫 框架 scrapy
  • python3爬虫之开篇
    写在前面的话:   折腾爬虫也有一段时间了,从一开始的懵懵懂懂,到现在的有一定基础,对于这一路的跌跌撞撞,个人觉得应该留下一些文字性的东西,毕竟好记性不如烂笔头,而且毕竟这是吃饭的家伙,必须用心对待才可以,从今天起,我将会把关于爬虫的东西...
    99+
    2023-01-30
    爬虫 开篇
  • python3爬虫-通过selenium
    from selenium import webdriver from selenium.common.exceptions import NoSuchElementException from selenium.webdriver.c...
    99+
    2023-01-31
    爬虫 selenium
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作