初学python

来源:互联网 发布:淘宝年消费怎么查 编辑:程序博客网 时间:2024/06/04 19:08

简单爬虫架构:URL管理器,网页下载器,网页解析器。

一、URL管理器

主要实现方法:
这里写图片描述

二、网页下载器urllib

1、最简单

urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)

  • url: 需要打开的网址

  • data:Post提交的数据

  • timeout:设置网站的访问超时时间

import urllib.requestresponse = urllib.request.urlopen('http://www.baidu.com')html = response.read()print(html)

2、使用Requeest

urllib.request.Request(url, data=None, headers={}, method=None)

import urllib.requestreq = urllib.request.Request('http://www.baidu.com')response = urllib.request.urlopen(req)html = response.read()print(html)

需要加headers

import urllib.requestimport urllib.parseurl = r'http://www.lagou.com/jobs/positionAjax.json?'headers = {     'User-Agent': r'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) '                    r'Chrome/45.0.2454.85 Safari/537.36 115Browser/6.0.3',      'Referer': r'http://www.lagou.com/zhaopin/Python/?labelWords=label',      'Connection': 'keep-alive'  }req = urllib.request.Request(url, headers=headers)page = urllib.request.urlopen(req).read()page = page.decode('utf-8')print(page)

用来包装头部的数据:

  • User-Agent :这个头部可以携带如下几条信息:浏览器名和版本号、操作系统名和版本号、默认语言

  • Referer:可以用来防止盗链,有一些网站图片显示来源http://*.com,就是检查Referer来鉴定的

  • Connection:表示连接状态,记录Session的状态。

需要POST数据
urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
经过urlencode()转换后的data数据为?first=true?pn=1?kd=Python,最后提交的url为

http://www.lagou.com/jobs/positionAjax.json?first=true?pn=1?kd=Python

import urllib.requestimport urllib.parseurl = r'http://www.lagou.com/jobs/positionAjax.json?'headers = {     'User-Agent': r'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) '                    r'Chrome/45.0.2454.85 Safari/537.36 115Browser/6.0.3',      'Referer': r'http://www.lagou.com/zhaopin/Python/?labelWords=label',      'Connection': 'keep-alive'  }data = {     'first': 'true',     'pn': 1,     'kd': 'Python' }data = urllib.parse.urlencode(data).encode('utf-8')req = urllib.request.Request(url, headers=headers, data=data)page = urllib.request.urlopen(req).read()page = page.decode('utf-8')print(page)

使用代理

proxy = urllib.request.ProxyHandler({'http':'5.22.195.215:80'})opener = urllib.request.build_opener(proxy)  #加载openerurllib.request.install_opener(opener)        #安装openerdata = urllib.parse.urlencode(data).encode('utf-8')page = opener.open(url,data).read()print(page)

使用cookie

import urllib.requestimport urllib.parseimport http.cookiejarurl = r'http://www.baidu.com'cookie = http.cookiejar.CookieJar()#声明一个CookieJar对象实例来保存cookiehandler = urllib.request.HTTPCookieProcessor(cookie)#利用urllib库的HTTPCookieProcessor对象来创建cookie处理器opener = urllib.request.build_opener(handler)#加载openerurllib.request.install_opener(opener)#安装openerresponse = opener.open(url)#用带有cookie的urllib访问网页page = response.read()print(page)

三、网页解析器

主要是从网页中获取有价值的数据(有效数据和URL)。
最主要用到BeautifulSoup4
Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖析树(parse tree)。 它提供简单又常用的导航(navigating),搜索以及修改剖析树的操作。它可以大大节省你的编程时间。
具体使用方法http://cuiqingcai.com/1319.html

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 美甲彩绘胶干了怎么办 美甲彩绘胶稀怎么办 彩绘胶弄衣服上怎么办 彩绘胶买来太稠怎么办 做指甲没有底胶怎么办 交定金后发现房屋不合法怎么办 买车付了定金不想要了怎么办 买车付定金后不想要怎么办 非法经营的产品至人伤亡怎么办 返修漆施工不对色怎么办 叶子板撞变形了怎么办 挤了三角区疖子怎么办 三角部位太鼓的怎么办 美利车车贷逾期怎么办? 外墙保温层坏了怎么办 双胞胎34周血压高怎么办 夏天穿凉鞋脚后跟干裂起硬皮怎么办 穿凉鞋脚后跟干裂起硬皮怎么办 夏天穿凉鞋磨脚怎么办 lv皮带黑色掉漆怎么办 黑色衣服穿在身上掉色怎么办 电信卡流量超了怎么办 移动卡流量超了怎么办 狗狗老是挠痒痒怎么办 出差同住的同事睡觉打鼾怎么办 小孩皮肤太黑了怎么办 苹果平板突然黑屏打不开怎么办 孩子认人晚上哭怎么办 主腹动脉有硬块怎么办 糖链抗原125偏高怎么办 狗长了个肿瘤怎么办 腺肌瘤糖类抗原125升高怎么办 糖类抗原724单项升高怎么办? 化疗期间糖类抗原升高怎么办? 门面租客到期不搬怎么办 这几天老想初恋怎么办 结婚了还想初恋怎么办 九年了想初恋了怎么办 吃肥肉恶心想吐怎么办 宝宝吃了母乳不吃奶粉怎么办 母猫的奶少怎么办