![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
爬虫
百雨
希望在工作过程中将问题与解决方案记录下来
展开
-
用cookie和session解决http访问的无状态性
目录(一)前端数据抓取(二)网路请求格式(三)代码编写(三)基于二的结果直接请求登陆后的页面能否成功?(不能)(四)http无状态访问解决方法方法一:(太笨,不推荐,懂原理就行,就是加上Request Header信息,里面有cookie)方法二:(推荐)requests库的session对象能够帮我们跨请求保持某些参数,也会在同一个session实例发...原创 2019-04-25 20:17:57 · 1613 阅读 · 0 评论 -
爬取美女图片
#coding:utf-8import osimport requestsfrom urllib import requestfrom time import sleepdef get_img(keyword,page_size = 30): """ :param keyword: 查询关键字 :param page_size: 单次查询的条数 ""...原创 2019-04-23 00:10:41 · 1072 阅读 · 0 评论 -
爬虫百度贴吧下载20页html
根据搜索内容爬取前20页的htmlimport osimport requestssearch_name = input('请输入搜索内容:')dir_name = search_name# print(os.path.dirname(os.path.abspath(__file__))+'\\'+dir_name)# 如果不存在保存20页html的文件夹就建立一个if n...原创 2019-04-25 13:20:32 · 94 阅读 · 0 评论 -
爬虫以外的数据来源网站
原创 2019-04-25 12:51:13 · 325 阅读 · 0 评论 -
xpath爬个扇贝单词
注意的是:// 是全局查找.// 是当前节点标签内全局查找提示:有多少页单词就能爬多少页,就是用这几行代码跳出死循环的,也就是说说捕获不到数据就说明页码到头了。tr_list = tree.xpath('//table[@class="table table-bordered table-striped"]/tbody/tr') if not tr_li...原创 2019-04-29 20:25:16 · 164 阅读 · 0 评论 -
贪婪与反贪婪模式
(一)名词解释贪婪模式:在整个表达式匹配成功的前提下,尽可能多的匹配 ( * );非贪婪模式:在整个表达式匹配成功的前提下,尽可能少的匹配 ( ? );Python 里数量词默认是贪婪的。示例一 : 源字符串:abbbc使用贪婪的数量词的正则表达式 ab* ,匹配结果: abbb。* 决定了尽可能多匹配 b,所以 a 后面所有的 b 都出现了。使用非贪婪的数量词的正则表...原创 2019-04-28 21:52:03 · 248 阅读 · 0 评论 -
正则表达式中match、search、findall区别
目录re 模块的一般使用步骤如下:search与match不同之处(一)match(二)search(三)findall(四)finditer(五)split(六)sub(七)匹配中文re 模块的一般使用步骤如下:使用 compile()函数将正则表达式的字符串形式编译为一个 Pattern 对象通过 Pattern 对象提供的一系列方法对文本...原创 2019-04-28 21:37:41 · 4932 阅读 · 1 评论 -
正则匹配手机邮箱url、ip
(一)匹配手机号import repattern = re.compile(r'^1[34578]\d{9}$')num_test = ['12345678900','13567890876','1377']for num in num_test: item = pattern.findall(num) print(item)(二)邮箱实例1、只允许英文...原创 2019-04-28 20:58:53 · 496 阅读 · 0 评论 -
爬虫方式总结(待补充)
(一)一个html的所有信息都在你一次请求中返给你这种情况下,页面没有ajax请求。我们只需要拿到返回的页面用正则匹配找到我们需要的部分就好了。如果像爬取所有电影一样,有分页,可以用while true,根据分页的规律声明一个全局变量a,每循环一次,a就变化一次,达到转到下一页的目的。每次转到下一页就正则匹配我们的电影,匹配到了就继续循环,当匹配不到返回空时(电影没了)就break跳出wh...原创 2019-04-28 19:42:20 · 817 阅读 · 0 评论 -
爬取ajax加载的豆瓣电影
(一)前提:找到ajax异步加载的包接口,注意第一个电影名我们把Request URL网址复制到地址栏得到:上图是json格式数据,且第一个电影一致,说明我们找到了正确的ajax的json接口出现加载更多之前是20部电影,点击加载更多,我们会得到第二个json包,里面是另外20个电影。(二)爬取豆瓣中美剧分类的电影200个第一种方式(最后优化):多加载几个j...原创 2019-04-26 21:22:31 · 1030 阅读 · 0 评论 -
浏览器加载一个页面为什么那么多包
转自:https://blog.csdn.net/weixin_44239431/article/details/89576241浏览器加载页面资源的步骤如下(部分参考网络资料):以下是浏览器的功能,自动去加载页面中的资源,用python的requests模块请求同一个页面,数据并不完整就是因为我们没有浏览器的继续请求功能。1.用户输入网址(假设是第一次访问),浏览器向服务器发出请求...原创 2019-04-26 21:20:15 · 275 阅读 · 0 评论 -
ajax流程详解
ajax的实现步骤 (1) 通过事件调用js中的函数,通过函数创建ajax请求,也就是创建一个异步调用对象. (2) ajax里通过url键指定的值创建一个新的url执行HTTP请求,并指定该HTTP请求的方法(post、get...)、携带数据及验证信息 (csrf等) (3)服务端设置响应HTTP请求的函数. (4)服务端的这个相应函数使用aj...原创 2019-04-26 19:56:50 · 335 阅读 · 0 评论 -
有道词典反爬的破解
目录(一)课题目的(二)遇到的障碍(三)障碍分析(四)找到js(五)在js中找到改变salt,sign,ts的函数(六)找到数据来源(七)python实现相同逻辑(一)课题目的自己实现在pycharm中输入每一个单词都能查询到翻译内容(二)遇到的障碍我们通常会拿到翻译接口,将Form Data的数据提交过去就能拿到翻译结果,因为Form Data...原创 2019-04-26 18:47:17 · 2467 阅读 · 0 评论 -
爬虫用代理服务器
用代理服务器访问目的服务器时,目的服务器找不到你,只能找到代理服务器,你可以适当为所欲为,嗯,适当。。。import requests# 根据协议类型,选择不同的代理proxies = { 'http':'http://183.148.131.184:9999', #代理服务器ip}# 使用代理response = requests.request('get','htt...原创 2019-04-25 23:08:48 · 1575 阅读 · 0 评论 -
爬虫跳过https安全认证
当我们登陆一个https网站时可能会出现网站证书不可信问题,禁止我们访问,如若就想进入,我们可以点击页面的高级进行设置,同意进入。我们在编写代码时,同理可以用将参数verify设置为False来跳过验证进入网页,下面是出现的警告,不用管它,我们就是抓取数据而已,又不是登录名加密码弄银行卡啥的。这样就能进入了...原创 2019-04-25 22:59:16 · 7749 阅读 · 0 评论 -
cookie和session的区别
目录(一)cookie是什么?为什么存在?(二)cookie在哪(三)cookie中的数据来自哪里(四)session是什么?为什么存在?在哪?(五)cookie与session联合工作(六)cookie被浏览器禁了咋办(七)cookie 和session 的区别:整合个人理解与https://www.cnblogs.com/shiyangxt/artic...原创 2019-04-25 22:26:12 · 127 阅读 · 0 评论 -
post和get的区别(详解)
本文摘自:https://www.cnblogs.com/logsharing/p/8448446.html提示:get 和post 是HTTP协议中的两种发送请求的方法,而http是基于tcp链接的数据通信协议,是在传输层的。(一)w3schools解释(二)深入理解(1)GET和POST是什么?HTTP协议中的两种发送请求的方法。(2)HTTP是什么?HTTP是基于T...原创 2019-04-25 20:31:33 · 2283 阅读 · 0 评论 -
百度翻译的json接口数据爬取
我们在用翻译的时候,每打一个字母就会有一些提示,这是从接口https://fanyi.baidu.com/sug传回来的,我们找到接口就能拿到相同的数据,下图和代码打印的结果一模一样拓展:所以前端鼠标移入单词显示意思,可以调用百度翻译接口,将数据展示步骤分析:翻到最先面有一个kw:p键值对,这就是代码中pram_dic = { "kw":word}:出现的...原创 2019-04-25 17:07:08 · 2850 阅读 · 4 评论