网页爬虫抓取百度图片(详解Python网络爬虫功能的基本写法的相关内容吗?)
优采云 发布时间: 2022-01-12 17:14网页爬虫抓取百度图片(详解Python网络爬虫功能的基本写法的相关内容吗?)
想了解Python网络爬虫功能的基本写法吗?在本文中,我将讲解Python网络爬虫功能的相关知识和一些代码示例。欢迎阅读和指正。我们先来关注一下:Python网络爬虫,Python爬虫,一起来学习。
网络爬虫,或者Web Spider,是一个很形象的名字。互联网被比作蜘蛛网,那么蜘蛛就是在网上爬行的蜘蛛。
1. 网络爬虫的定义
网络蜘蛛通过它们的链接地址寻找网页。从网站的某个页面(通常是首页)开始,读取网页的内容,找到网页中的其他链接地址,然后通过这些链接地址找到下一个网页,以此类推以此类推,直到这个 网站 直到所有页面都被爬取为止。如果把整个互联网看成一个网站,那么网络蜘蛛就可以利用这个原理爬取互联网上的所有网页。这样一来,网络爬虫就是一个爬虫程序,一个爬取网页的程序。网络爬虫的基本操作是爬取网页。
2. 浏览网页的过程
爬取网页的过程其实和读者平时使用IE浏览器浏览网页的方式是一样的。假设您在浏览器的地址栏中输入此地址。
打开网页的过程其实就是浏览器作为浏览的“客户端”,向服务器端发送请求,将服务器端的文件“抓取”到本地,然后解释并显示出来。
HTML 是一种标记语言,它使用标签来标记内容并对其进行解析和区分。浏览器的作用就是解析得到的HTML代码,然后将原创代码转换成我们直接看到的网站页面。
3. 基于python的网络爬虫函数
1)。python获取html页面
其实最基本的抢站,两句话就够了:
import urllib2
content = urllib2.urlopen('http://XXXX').read()
这样可以获取整个html文档,关键问题是我们可能需要从这个文档中获取我们需要的有用信息,而不是整个文档。这需要解析充满各种标签的html。
2)。python爬虫爬取页面后解析html方法
Python爬虫html解析库SGMLParser
Python 默认自带 HTMLParser 和 SGMLParser 等解析器。前者太难用了。我用 SGMLParser 写了一个示例程序:
import urllib2
from sgmllib import SGMLParser
class ListName(SGMLParser):
def __init__(self):
SGMLParser.__init__(self)
self.is_h4 = ""
self.name = []
def start_h4(self, attrs):
self.is_h4 = 1
def end_h4(self):
self.is_h4 = ""
def handle_data(self, text):
if self.is_h4 == 1:
self.name.append(text)
content = urllib2.urlopen('http://169it.com/xxx.htm').read()
listname = ListName()
listname.feed(content)
for item in listname.name:
print item.decode('gbk').encode('utf8')
很简单,这里定义了一个叫ListName的类,继承SGMLParser中的方法。使用变量 is_h4 作为标记来确定 html 文件中的 h4 标签。如果遇到 h4 标记,则将标记中的内容添加到 List 变量名称中。解释 start_h4() 和 end_h4() 函数,它们的原型在 SGMLParser
start_tagname(self, attrs)
end_tagname(self)
tagname是标签名,比如遇到的时候
,就会调用 start_pre,遇到
, end_pre 被调用。attrs 为标签的参数,以[(attribute, value), (attribute, value), ...]的形式返回。
python爬虫html解析库pyQuery
pyQuery 是 jQuery 在 python 中的实现。它可以用jQuery语法操作和解析HTML文档,非常方便。使用前需要安装,easy_install pyquery,或者Ubuntu下
sudo apt-get install python-pyquery
下面的例子:
from pyquery import PyQuery as pyq
doc=pyq(url=r'http://169it.com/xxx.html')
cts=doc('.market-cat')
for i in cts:
print '====',pyq(i).find('h4').text() ,'===='
for j in pyq(i).find('.sub'):
print pyq(j).text() ,
print '\n'
Python爬虫html解析库BeautifulSoup
令人头疼的一个问题是,大多数网页都没有完全按照标准编写,各种莫名其妙的错误让人很难找出是谁编写的网页。为了解决这个问题,我们可以选择著名的 BeautifulSoup 来解析 html 文档,它具有很好的容错性。
以上就是本文的全部内容。对Python网络爬虫功能的实现进行了详细的分析和介绍。希望对大家的学习有所帮助。
相关文章