python爬虫模块理解

Url管理器:

  用来管理要抓取的url和已抓取的url,防止重复抓取和循环抓取,url管理器的五个最小功能:

    1、添加url到容器中

    2、获取一个url

    3、判断url是否已在容器中

    4、判断是否还有待爬取的url

    5、将待爬取的url移到已爬取的url

网页下载器:

  网页下载器是爬虫的核心组件,它将url对应的互联网网页已html的形式保存在本地。目前有两种网页下载器,1:urllib2(python基础模块) 2:requests(第三库)

  urllib2三种下载网页的方法:

    1、简单方式下载

    2、添加data和http header

    3、添加特殊场景的处理器

import http.cookiejarimport urllib.request

url = "http://www.baidu.com"

print("one")response1 = urllib.request.urlopen(url)print(response1.getcode())print (len(response1.read()))

print("two")request = urllib.request.Request(url)request.add_header("user-agent","Mozilla/5.0")response2 = urllib.request.urlopen(request)print(response2.getcode())print (len(response2.read()))

print("three")cj = http.cookiejar.CookieJar()opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))urllib.request.install_opener(opener)response3 = urllib.request.urlopen(url)print(response3.getcode())print(response3.read())

网页解析器:

  从网页中提取有价值数据的工具,常用的网页解析器有以下三种,1、正则表达式,2、html.parser(自带的模块),3、beautiful Soup(第三方的插件),4、lxml;前面一种是基于字符串的解析,后面的三种是基于一种机构化的解析(DOM)。

response1 = urllib.request.urlopen(url)print(response1.getcode())print (len(response1.read()))

原文地址:https://www.cnblogs.com/niuyg928/p/12237655.html

时间: 2024-10-10 20:26:29

python爬虫模块理解的相关文章

python爬虫模块之URL管理器

URL管理器模块 一般是用来维护爬取的url和未爬取的url已经新添加的url的,如果队列中已经存在了当前爬取的url了就不需要再重复爬取了,另外防止造成一个死循环.举个例子 我爬www.baidu.com 其中我抓取的列表中有music.baidu.om,然后我再继续抓取该页面的所有链接,但是其中含有www.baidu.com,可以想象如果不做处理的话就成了一个死循环了,在百度首页和百度音乐页循环,所以有一个对列来维护URL是很重要的. 下面以python代码实现为例,使用的deque双向队列

python爬虫模块的安装

1.Requests模块的安装 1 pip3 install requests 1 #调用: 2 import requests 3 4 response = requests.get('https://www.baidu.com') 5 6 print (response.url) 7 print (response.text) 2.selenium + webdriver 模块 安装selenium 1 pip3 install selenium 安装webdriver (chromedri

python爬虫模块之HTML下载模块

HTML下载模块 该模块主要是根据提供的url进行下载对应url的网页内容.使用模块requets-HTML,加入重试逻辑以及设定最大重试次数,同时限制访问时间,防止长时间未响应造成程序假死现象. 根据返回的状态码进行判断如果访问成功则返回源码,否则开始重试,如果出现异常也是进行重试操作. from requests_html import HTMLSession from fake_useragent import UserAgent import requests import time i

python爬虫模块之HTML解析模块

这个就比较简单了没有什么好强调的,如果返回的json 就是直接按照键值取,如果是网页就是用lxml模块的html进行xpath解析. from lxml import html import json class GetNodeList(): def __init__(self): self.getdivxpath="//div[@class='demo']" def use_xpath(self,source): if len(source): root=html.fromstrin

python爬虫----(1. 基本模块)

python爬虫,web spider.爬取网站获取网页数据,并进行分析提取. 基本模块使用的是 urllib,urllib2,re,等模块 (一)基本用法,例子 (1)进行基本GET请求,获取网页html #!coding=utf-8 import urllib import urllib2 url = 'http://www.baidu.com/' # 获取请求 request = urllib2.Request(url) try:     # 根据request,得到返回response

python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding:utf-8from com.wenhy.crawler_baidu_baike import url_manager, html_downloader, html_parser, html_outputer print "爬虫百度百科调度入口" # 创建爬虫类class SpiderMai

Python爬虫教程-09-error 模块

Python爬虫教程-09-error模块 今天的主角是error,爬取的时候,很容易出现错,所以我们要在代码里做一些,常见错误的处,关于urllib.error URLError URLError 产生的原因: 1.无网络连接 2.服务器连接失败 3.找不到指定的服务器 4.URLError是OSError的子类 案例v9文件:https://xpwi.github.io/py/py%E7%88%AC%E8%99%AB/py09error.py # 案例v9 # URLError的使用 fro

python之模块 marshal(序列化)---没理解

# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块 marshal(序列化) #来自:mldxs import marshal data1 = ['abc',12,23,'jb51'] data2 = {1:'aaa',"b":'dad'} data3 = (1,2,4) output_file = open("a.txt",'wb')#把这些数据序列化到文件中,注:文件必须以二进制模式打开 marshal

Python爬虫入门七之正则表达式

在前面我们已经搞定了怎样获取页面的内容,不过还差一步,这么多杂乱的代码夹杂文字我们怎样把它提取出来整理呢?下面就开始介绍一个十分强大的工具,正则表达式! 1.了解正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑. 正则表达式是用来匹配字符串非常强大的工具,在其他编程语言中同样有正则表达式的概念,Python同样不例外,利用了正则表达式,我