网页爬虫抓取百度图片(详解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网络爬虫功能的实现进行了详细的分析和介绍。希望对大家的学习有所帮助。

  相关文章

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线