爬虫入门:Python

indicator:

网页也是文件,只是路径是 url 形式,内容是html——打开则需要使用urlopen,而 urlopen 则是返回一个类文件对象

想要找到文件指定内容——正则表达式匹配,或者其他技术


URL 管理器——

功能:区别URL爬取 / 未爬取,避免重复爬取统一个URL

使用内存实现——两组set():已爬取URL/未爬取URL,使用set() 数据结构可以直接取出重复元素

使用关系数据库——建立一个url 表,两个关键字:已爬取/未爬取

缓存数据库——高性能,redis 也支持set


网页下载器——

urllib2

1.直接获取所有——只需要参数 url

import urllib2
url = 'xxxx.com'
response = urllib2.urlopen(url)  # 请求
print response.getcode() # 状态码——200:success
print response.read() # 读取网页内容
2.交互——需要三个参数

header:向服务器提交 http 头信息

date:向服务器提交需要用户输入的数据

url

将三个参数构建一个request 对象(使用 urllib2.Request 构建),然后使用 urllib2.urlopen(request),以 request 为参数发送网页请求

a. 后面补充data和header

# -*- coding: utf-8 -*-
import urllib2
import urllib

url = 'http://xxxxsoft.org/jira/login.jsp'
request = urllib2.Request(url) # build Request object

# add data
data = urllib.urlencode({
		'os_username' : '23333',
		'os_password' : '23333',
                 .....
		'login' : 'Log In'
	})
request.add_data(data) #request.add_data('psw','xxxx') # key is 'psw', value is 'xxx'
# add header
header = "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36"
request.add_header('User-Agent',header) #request.add_header(header)  take 3 parameters (2 given)

response = urllib2.urlopen(request)
print response.read()
b.一开始就构建好带有header 和 data的request

import urllib2
import urllib
url = 'http://hdc-tomcat-jira150.ubisoft.org/jira/login.jsp'
data = urllib.urlencode({
		#'os_username' : '23333',
		'os_password' : '23333',
		'os_destination' : '',
		'user_role' : '',
		'atl_token' : '',
		'login' : 'Log In'
	})
header = "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36"
header = {'User-Agent' : header}

request = urllib2.Request(url) # build Request object
request = urllib2.Request(url = url, headers = header, data = data)
response = urllib2.urlopen(request)
print response.read()


3. 添加特殊的处理器

常见的处理器有:HTTPCookieProcessor(处理cookie信息),ProxyHandler(对于有些需要代理处理的网页),HTTPSHandler(对于https加密的网页),HTTPRedirectHandler(url相互自动跳转的网页),HTTPBasicAuthHandler。

将上述的 Handler 通过 build_opener() 方法创建对象:opener - urllib2.build_opener(xxxhandler) ——> urllib2 安装这些opener:urllib2.install_opener(opener),使得urllib2具有处理相应场景的能力,最后使用 urlopen() 参数可以为 request 或者 url 均可,urlopen调用的就是自定义的opener

import  urllib2,cookielib
cj = cookielib.CookieJar() # build one cookie container
opener = urllib2.build_opener( urllib2.HTTPCookieProcessor(cj) )
urllib2.install_opener(opener) # install one opener
reponse = urllib2.urlopen('http://www.baidu.com/') # use stronger urlopen to open webside

urlopen返回的是一堆 html 格式的代码,当你想要知道是否爬取了正确的网页,可以将 response.read() 的内容拷贝出来,构建一个html 文件打开看可以大致的比较一下。当然也可以查看目标网页源文件与其比较。


网页解析器——

正则表达式

BeautifulSoup 第三方插件——处理HTML

ScrapeNFeed——RSS feed进行分析


资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在当今的软件开发领域,自动化构建与发布是提升开发效率和项目质量的关键环节。Jenkins Pipeline作为一种强大的自动化工具,能够有效助力Java项目的快速构建、测试及部署。本文将详细介绍如何利用Jenkins Pipeline实现Java项目的自动化构建与发布。 Jenkins Pipeline简介 Jenkins Pipeline是运行在Jenkins上的一套工作流框架,它将原本分散在单个或多个节点上独立运行的任务串联起来,实现复杂流程的编排与可视化。它是Jenkins 2.X的核心特性之一,推动了Jenkins从持续集成(CI)向持续交付(CD)及DevOps的转变。 创建Pipeline项目 要使用Jenkins Pipeline自动化构建发布Java项目,首先需要创建Pipeline项目。具体步骤如下: 登录Jenkins,点击“新建项”,选择“Pipeline”。 输入项目名称和描述,点击“确定”。 在Pipeline脚本中定义项目字典、发版脚本和预发布脚本。 编写Pipeline脚本 Pipeline脚本是Jenkins Pipeline的核心,用于定义自动化构建和发布的流程。以下是一个简单的Pipeline脚本示例: 在上述脚本中,定义了四个阶段:Checkout、Build、Push package和Deploy/Rollback。每个阶段都可以根据实际需求进行配置和调整。 通过Jenkins Pipeline自动化构建发布Java项目,可以显著提升开发效率和项目质量。借助Pipeline,我们能够轻松实现自动化构建、测试和部署,从而提高项目的整体质量和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值