利用urllib.request读取url文档的内容并使用BeautifulSoup解析后,可以通过一些基本的BeautifulSoup对象输出html文档的基本信息.以博文<第14.6节 使用Python urllib.request模拟浏览器访问网页的实现代码>访问为例,读取和解析代码如下: >>> from bs4 import BeautifulSoup >>> import urllib.request >>> def getUR…
一. 引言 BeautifulSoup是一个三方模块bs4中提供的进行HTML解析的类,可以认为是一个HTML解析工具箱,对HTML报文中的标签具有比较好的容错识别功能.阅读本节需要了解html相关的基础知识,如果这方面知识不足请参考<第14.2节 HTML知识简介>. 二. BeautifulSoup安装.导入和创建对象 安装BeautifulSoup和lxml BeautifulSoup是bs4模块的类,lxml是一款html文本解析器,在操作系统命令行方式执行安装bs4模块和lxml解析…
一. 引言 在<第14.10节 Python中使用BeautifulSoup解析http报文:html标签相关属性的访问>和<第14.11节 Python中使用BeautifulSoup解析http报文:使用查找方法快速定位内容>介绍了通过属性和查找方法定位HTML报文的内容的方法,除了这两种方法还有一种方法就是通过使用CSS选择器的语法找到tag,关于css选择器老猿在此不进行介绍,大家可以自行查找文档了解,老猿推荐W3School 的<CSS 选择器参考手册>.其实…
一. 引言 在<第14.10节 Python中使用BeautifulSoup解析http报文:html标签相关属性的访问>介绍了BeautifulSoup对象的主要属性,通过这些属性可以访问标签.内容,但这种方法要么就只能访问符合条件的第一个对象,要么需要遍历访问对象,某些情况下不能通过指定特征快速定位标签和内容.本节将介绍使用BeautifulSoup提供的相关方法快速定位标签和内容的方法.本节继续复用<第14.10节 Python中使用BeautifulSoup解析http报文:ht…
一. 引言 在<第14.8节 Python中使用BeautifulSoup加载HTML报文>中介绍使用BeautifulSoup的安装.导入和创建对象的过程,本节介绍导入后利用BeautifulSoup对象访问相关标签数据. 本节案例中介绍处理的c:\temp\s1.html文件内容如下: <!DOCTYPE html> <html lang="zh-CN"> <head> <style type="text/css&qu…
第7.26节 Python中的@property装饰器定义属性访问方法getter.setter.deleter 详解 一.    引言 Python中的装饰器在前面接触过,老猿还没有深入展开介绍装饰器相关的内容,在后面将单独的章节来介绍.Python总共包括三个内置装饰器(注意abstractmethod这个装饰器是从abc模块导入的,不是内置的),除了前面介绍的类方法装饰器classmethod.静态方法装饰器staticmethod外,还有一个property装饰器,这个装饰器与prope…
写在前面:本文相关方法为作者独创,仅供参考学习爬虫技术使用,请勿用作它途,禁止转载! 一. 引言 在爬虫爬取网页时,有时候希望不同的时候能以不同公网地址去爬取相关的内容,去网上购买地址资源池是大部分人员的选择.老猿所在的环境有电信运输商部署的对外开放的WiFi,由于涉及对外开放支持不同用户接入,其分配的地址经过NAT地址转换,但其公网地址一定是一个地址池,对于需要公网地址池资源的人员来说,这就是一个免费的地址资源池.本节介绍的内容就是怎么借用这个地址资源池作为自己的地址池. 二. 要解决的问题…
一. 引言 一般情况下,没有特殊要求的客户,宽带服务提供商提供的上网服务,给客户家庭宽带分配的地址都是一个宽带服务提供商的内部服务地址,真正对外访问时通过NAT进行映射到一个公网地址,如果我们想确认自己的公网地址还不是很容易,但百度提供了一项服务,在百度查询时输入IP就可以查到浏览器所在本机的公网IP,利用该功能我们就可以查到本机公网IP,本节老猿就是要request+BeatifulSoap实现本机公网地址解析. 二. 百度公网地址解析过程分析 按<第14.3节 使用google浏览器获取网站…
一. 引言 在<第7.23节 Python使用property函数定义属性简化属性访问的代码实现>和<第7.26节 Python中的@property装饰器定义属性访问方法getter.setter.deleter 详解>中介绍了两种设置属性访问方法,通过设置可以在相关属性访问时调用对应的方法执行访问,支持属性简单访问(如对象名.属性名.赋值语句).或者为了控制访问逻辑使用的.那么property函数其中的fget.@property装饰器的getter之间的关系是怎样的呢?下面我…
一. 引言 在<第14.6节 Python模拟浏览器访问网页的实现代码>介绍了使用urllib包的request模块访问网页的方法.但上节特别说明http报文头Accept-Encoding最好不设置,否则服务端会根据该字段及服务端的情况采用对应方式压缩http报文体,如果爬虫应用没有解压支持会导致应用无法识别收到的响应报文体.本节简单介绍一下怎么处理响应报文体的压缩. 在爬虫爬取网页时,如果在请求头中传递了"'Accept-Encoding':'gzip'"信息则服务器会…