前面既然都提到编码了,那么把相关的编码问题补充完整吧 编码 之前我说过,使用python2爬取网页时,容易出现编码问题,下面就真的拿个例子来看看: python2下: # -*- coding:utf-8 -*- import urllib url = 'http://www.qq.com/' response = urllib.urlopen(url) html = response.read() print html 结果: 像那些就是编码问题不能显示的中文,先看看腾讯首页源代码是什么默认编…
其实在最前面的某一篇博文里,是绝对提过编码的,有ASCII,有UTF-8,有GB2312等等,这些我绝对说过的. url编码 首先,Http协议中参数的传输是"key=value"这种键值对形式的,如果要传多个参数就需要用“&”符号对键值对进行分割.如"?key1=value1&key2=value2",这样在服务端在收到这种字符串的时候,会用“&”分割出每一个参数,然后再用“=”来分割出键和值并进行处理. 然后,url只能使用 ASCII…
不多说直接上状态码表: 状态码 含义 100 客户端应当继续发送请求.这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝.客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应.服务器必须在请求完成后向客户端发送一个最终响应. 101 服务器已经理解了客户端的请求,并将通过Upgrade 消息头通知客户端采用不同的协议来完成这个请求.在发送完这个响应最后的空行后,服务器将会切换到在Upgrade 消息头中定义的那些协议. 只有在切换新的协议更有好处的时候才应该采…
初识python 之 爬虫:使用正则表达式爬取"古诗文"网页数据 的兄弟篇. 详细代码如下: #!/user/bin env python # author:Simple-Sir # time:2019/8/1 14:50 # 爬取糗事百科(文字)网页数据 import requests,re URLHead = 'https://www.qiushibaike.com' def getHtml(url): headers = { 'User-Agent': 'Mozilla/5.0…
Python的运算符分为以下几类: 算术运算符比较(关系)运算符赋值运算符逻辑运算符位运算符成员运算符身份运算符 以及需要考虑的:运算符优先级 一.算术运算符: 需要注意的,上图是Python 2.0版本的,在Python3.0版本中,算术除法与2.0版本不同. 二.比较运算符 比较运算符返回的值均为True 或 False:(bool值) 在Python3.0 中,是不是没有<>这个运算符了? 三.赋值运算符 赋值运算符使用还不是很熟练: 示例: >>> a=3 >&…
Python : 熟悉又陌生的字符编码 字符编码是计算机编程中不可回避的问题,不管你用 Python2 还是 Python3,亦或是 C++, Java 等,我都觉得非常有必要厘清计算机中的字符编码概念.本文主要分以下几个部分介绍: 基本概念 常见字符编码简介 Python 的默认编码 Python2 中的字符类型 UnicodeEncodeError & UnicodeDecodeError 根源 基本概念 字符(Character) 在电脑和电信领域中,字符是一个信息单位,它是各种文字和符号…
知识储备,简单爬虫的必知必会,[核心] 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到桌面上的程序: xfce终端:Linux命令行终端,打开后会进入 shell 环境,可以使用Linux命令 Firefox:浏览器,可以用在需要前端界面的课程里,只需要打开环境里写的HTML/JS页面即可 GVim:非常好用的编辑器,最简单的用法可以参考课程Vim编辑器 3. 环境使用 使用GVim编…
之前帮公司爬取过内部的一个问题单网站,要求将每个问题单的下的附件下载下来.一开始的时候我就遇到一个破解登陆验证的大坑......      (╬ ̄皿 ̄)=○ 由于在公司使用的都是内网,代码和网站的描述也都属于公司的信息安全资产范围,具体细节不方便透露,就简要描述一下需求和问题吧. 在访问网站前需要先进行一个登陆,浏览器使用的是chrome,一开始我的想法是通过chromrdriver模拟登陆,但是用户名和密码输入框都是使用的浏览器自带的弹窗,chromedriver无法获取到输入和点击位置.放弃…
1. urllib模块库 Urllib是python内置的HTTP请求库,urllib标准库一共包含以下子包: urllib.error 由urllib.request引发的异常类 urllib.parse URL解析组件 urllib.request 用于打开网址的可扩展库. urllib.response urllib使用的响应类. urllib.robotparser 加载robots.txt文件并回答有关其他网址可抓取性的问题. 使用urllib库进行post操作,如何建立post数据格…
首先,推荐两个关于python爬虫不错的博客:Python爬虫入门教程专栏   和 Python爬虫学习系列教程 .写的都非常不错,我学习到了很多东西!在此,我就我看到的学到的进行总结一下! 爬虫就是一个不断的去抓去网页的程序,根据我们的需要得到我们想要的结果!但我们又要让服务器感觉是我们人在通过浏览器浏览不是程序所为!归根到底就是我们通过程序访问网站得到html代码,然后分析html代码获取有效内容的过程.下面让我们从最简单的爬虫开始: 爬取一个页面源代码 在python中,抓取网页的库是ur…
requests 使用requests进行爬取                 下面是我编写的第一个爬虫的脚本                   import requests # 导入requests模块                 r = requests.get('https://daohang.qq.com').content # 通过requests.get方法访问地址https://daohang.qq.com,再使用r.content获取返回的bytes内容        …
又是一年双十一了,不知道从什么时候开始,双十一从“光棍节”变成了“双十一购物狂欢节”,最后一个属于单身狗的节日也成功被攻陷,成为了情侣们送礼物秀恩爱的节日. 翻着安静到死寂的聊天列表,我忽然惊醒,不行,我们不能这样下去,光羡慕别人有什么用,我们要行动起来,去找自己的幸福!!! 我也想“谈不分手的恋爱” !!!内牛满面!!! 注册登陆一气呵成~ 筛选条件,嗯...性别女,年龄...18到24岁,身高嘛,无所谓啦,就按默认155-170吧,地区...嗯北京好,北京近一点,照片?那肯定要啊,必须的!!…
在IDE解释器中,执行help('modules')可查看当前环境可调用的Python模块: >>> help('modules') Please wait a moment while I gather a list of all available modules... __future__ atexit http scrolledlist __main__ audioop hyperparser search _abc autocomplete idle searchbase _a…
Python的异常 异常的层次结构: BaseException [所有异常的基类] +-- SystemExit [解释器请求退出] +-- KeyboardInterrupt [用户中断执行(通常是输入^C)] +-- GeneratorExit [生成器(generator)发生异常来通知退出] +-- Exception [常规错误的基类] +-- StopIteration [迭代器没有更多的值] +-- StopAsyncIteration +-- ArithmeticError […
编码 这篇博文的主题是,编码问题,老生常谈的问题了对吧?从我这一套的文章来看,前面已经提到好多次编码问题了,的确这个确实很重要,这可是难道了很多能人异士的,当你以为你学懂了,在研究爬虫时你发现你错了,还是没搞懂,爬虫研究完后,你以为你懂了,url编码又把你打回原形,然后你以为你真的懂了,你学到socket的时候,你发现,你还是没有真的理解,真实气人啊,对吧 与编码问题相关的都在这两篇博文中: 洗礼灵魂,修炼python(3)--从一个简单的print代码揭露编码问题,运行原理和语法习惯 洗礼灵魂…
题外话: 前面学了那么多,相信你已经对python很了解了,对爬虫也很有见解了,然后本来的计划是这样的:(请忽略编号和日期,这个是不定数,我在更博会随时改的) 上面截图的是我的草稿 然后当我开始写博文的时候,我发现讲解PhantomJS的话,会涉及到JS代码,而相信跟着我的学习路线从小白上来的,应该都还没学过JS吧,说到JS,那么和Phantom很像的一个模块casperjs,也要跟着提点下,那么还要从JS开始讲解 然后说到PyQuery,其又几乎和JQuery差不多,又要提下JQuery 接着…
为了避免自己忘了Python的爬虫相关知识和流程,下面简单的记录一下爬虫的基本要求和编程问题!! 简单了解了一下,爬虫的方法很多,我简单的使用了已经做好的库requests来获取网页信息和BeautifulSoup来进行正则判定文本.这样也算是简单的入门了爬虫的基本实验,也能够从网页上爬取自己想要的信息! link = 'http://news.sina.com.cn/' res = requests.get(link) res.encoding = 'utf-8' #设置文本的编码格式是utf…
目录 前言 一.探讨什么是python网络爬虫? 二.一个针对于网络传输的抓包工具fiddler 三.学习request模块来爬取第一个网页 * 扩展内容(爬取top250的网页) 后记 @(目录) 前言 hello,接下来就学习如何使用Python爬虫功能. 在接下来的章节中可以给大家整理一个完整的学习要点,当然都是一个简单的知识点, 喔,本人认为就是一个入门,不会讲的特别深入,因为接下来的一章中可能有多个知识点, 不过自主的学习才是王道 奥力给!!! 废话不多说,先整理一下本次内容: 1.探…
<python开发技术详解>|百度网盘免费下载|Python开发入门篇 提取码:2sby  内容简介 Python是目前最流行的动态脚本语言之一.本书共27章,由浅入深.全面系统地介绍了利用Python语言进行程序开发的知识和技巧,包括 Python的安装和环境配置.Python的基本语法.模块和函数.内置数据结构.字符串和文件的处理.正则表达式的使用.异常的捕获和处理.面向对象的语言特性和设计.Python的数据库编程.wxPython库的使用.HTML应用.XML应用.Django网页开发…
python网络爬虫的学习第一步 [python网络爬虫]之0 爬虫与反扒 [python网络爬虫]之一 简单介绍 [python网络爬虫]之二 python uillib库 [python网络爬虫]之三 requests模块 [python网络爬虫]之四 数据解析的三种方式 [python网络爬虫]之五 requests模块的cookie和代理操作 [python网络爬虫]之六 selenuim和phantonJs处理网页动态加载数据的爬取 [python 网络爬虫]之scrapy系列 更新中…
在前面的某一篇中,说完了pickle,但我相信好多朋友都不懂到底有什么用,那么到了爬虫篇,它就大有用处了,而和pickle很相似的就是JSON模块 JSON 1.简介 1)JSON(JavaScript Object Notation) ,js对象标记,是一种轻量级的数据交换格式.它易于阅读和编写,同时也易于机器解析和生成.它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集,…
feedparser模块 1.简介 feedparser是一个Python的Feed解析库,可以处理RSS ,CDF,Atom .使用它我们可从任何 RSS 或 Atom 订阅源得到标题.链接和文章的条目了. RSS(Really Simple Syndication,简易信息聚合):是一种描述和同步网站内容的格式你可以认为是一种定制个性化推送信息的服务.RSS 是用于分发 Web 站点上的内容的摘要的一种简单的 XML 格式它能够解决你漫无目的的浏览网页的问题.它的信息越是过剩,它的意义也越加…
Xpath,lxml模块用法 转载的原因和前面的一样,我写的没别人写的好,所以我也不浪费时间了,直接转载这位崔庆才大佬的 原帖链接:传送门 以下为转载内容: -------------------------------------------------------------------------------------------------------------------------------- 参考来源 lxml用法源自 lxml python 官方文档,更多内容请直接参阅官方…
爬虫篇前面的某一章了,我们要爬取网站页面源代码的数据,要从中获取到我们想要的数据,是不是感觉很费力,确实费力对吧?那么有没有什么有利的工具来解决这个问题呢?那就是这一篇博文的主题—— 正则表达式简介 1.概念理解 正则表达式(Regular expressions 也称为 REs,或 regexes 或 regex patterns)本质上是一个微小的且高度专业化的编程语言.正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配.使用正则表达式,你需要指定一些规则来描述…
urllib 1.简介: urllib 模块是python的最基础的爬虫模块,其核心功能就是模仿web浏览器等客户端,去请求相应的资源,并返回一个类文件对象.urllib 支持各种 web 协议,例如:HTTP.FTP.Gopher:同时也支持对本地文件进行访问.但一般而言多用来进行爬虫的编写. 2.方法/属性: 3.常用的方法/属性解析:  urllib.urlopen(url[, data[, proxies[, context]]]):打开网页 创建一个表示远程url的类文件对象,然后像本…
爬虫 1.什么是爬虫 爬虫就是昆虫一类的其中一个爬行物种,擅长爬行. 哈哈,开玩笑,在编程里,爬虫其实全名叫网络爬虫,网络爬虫,又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者.是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟程序或者蠕虫(这一点倒是和我上面说的虫很形象). 这个解释有点官方了,说直白点,用过百度查找资料吗?你肯定用过吧,你知道像百度这样的搜索引擎什么原理吗?其实就是爬虫,不断的到各大网站链接里去爬取…
线程(上) 1.线程含义:一段指令集,也就是一个执行某个程序的代码.不管你执行的是什么,代码量少与多,都会重新翻译为一段指令集.可以理解为轻量级进程 比如,ipconfig,或者, python   XX.py(执行某个py程序),这些都是指令集和,也就是各自都是一个线程. 2.线程的特性: 线程之间可以相互通信,数据共享 线程并不等同于进程 线程有一定局限性 线程的速度由CPU和GIL决定. GIL,GIL全称Global Interpreter Lock,全局解释锁,此处暂且不谈,再下面该出…
说明一下,这个标题可能有点突兀,结合上一篇一起看就行 前面已经对BeautifulSoup有了了解了,相信你基本已经学会怎么获取网页数据了,那么BeautifulSoup这么吊,还有没有其他的功能呢?当然是有的 前面说的Tag对象都还记得吧?像这样BeautifulSoup.title,得到的就是Tag对象,它其实还有一些属性: 1.contents:将tag的子节点以列表的方式输出 还是前面的例子: # -*- coding:utf-8 -*- import bs4 html=''' <htm…
requests 1.简介 Requests 是用Python语言编写的第三方库,所以你需要pip安装,安装过程就略过了.它基于urllib,采用 Apache2 Licensed 开源协议的 HTTP 库.它比 urllib 更加方便实用,功能强大,可以节约我们大量的工作,满足一般的HTTP 测试需求.最重要的是,它支持 Python3 2.方法/属性 3.常用方法/属性解析 既然requests基于urllib,那么和前面几篇博文一样了,不用太多的介绍方法,直接从实例中解析常用方法吧. 本来…