
爬虫
喜欢吃蔬菜~
这个作者很懒,什么都没留下…
展开
-
selenium的使用
加载网页: selenium通过控制浏览器,所以对应的获取的数据都是elements中的内容 from selenium import webdriver driver = webdriver.PhantomJS(“c:…/pantomjs.exe”) driver.get("http://www.baidu.com/") driver.save_screenshot("长城...原创 2018-08-14 23:58:23 · 155 阅读 · 0 评论 -
常见的反爬手段和解决思路
1.通过headers中的User-Agent字段来反爬随机生成User-Agent:import randomdef get_ua(): first_num = random.randint(55, 62) third_num = random.randint(0, 3200) fourth_num = random.randint(0, 140) ...原创 2018-08-15 00:05:08 · 3045 阅读 · 0 评论 -
lxml模块的使用
安装:pip install lxml 导入lxml 的 etree 库 (导入没有提示不代表不能用) `from lxml import etree` 利用etree.HTML,将字符串转化为Element对象,Element对象具有xpath的方法,返回结果的列表,能够接受bytes类型的数据和str类型的数据 html = etree.HTML(text) ...原创 2018-08-15 00:05:29 · 2117 阅读 · 0 评论 -
数据提取之json
类文件对象的理解:具有read()或者write()方法的对象就是类文件对象,比如f = open(“a.txt”,”r”) f就是类文件对象#json.dumps 实现python类型转化为json字符串#indent实现换行和空格#ensure_ascii=False实现让中文写入的时候保持为中文json_str = json.dumps(mydict,indent=2,e...原创 2018-08-15 00:33:10 · 269 阅读 · 0 评论 -
新建隐身窗口的作用
在打开隐身窗口的时候,第一次请求某个网站是没有携带cookie的,和代码请求一个网站一样,不携带cookie。这样就能够尽可能的理解代码请求某个网站的结果;除非数据是通过js加载出来的,不然爬虫请求到的数据和浏览器请求的数据大部分时候都是相同的...原创 2018-08-15 00:05:54 · 1195 阅读 · 0 评论 -
requests超时参数的使用与retrying模块的使用
1、在平时网上冲浪的过程中,我们经常会遇到网络波动,这个时候,一个请求等了很久可能任然没有结果对应的,在爬虫中,一个请求很久没有结果,就会让整个项目的效率变得非常低,这个时候我们就需要对请求进行强制要求,让他必须在特定的时间内返回结果,否则就报错使用方法如下:response = requests.get(url,timeout=3)通过添加timeout参数,能够保证在3秒钟内返...原创 2018-08-15 00:05:42 · 8858 阅读 · 1 评论 -
requests处理证书错误
为了在代码中能够正常的请求,我们修改添加一个参数import requestsurl = "https://www.12306.cn/mormhweb/"response = requests.get(url,verify=False)原创 2018-08-15 00:06:34 · 1236 阅读 · 1 评论 -
requests模块获取cookie
requests.utils.dict_from_cookiejar:把cookiejar对象转化为字典import requestsurl = "http://www.baidu.com"response = requests.get(url)print(type(response.cookies))cookies = requests.utils.dict_from_cook...原创 2018-08-15 00:32:48 · 8247 阅读 · 0 评论 -
requests模块处理cookie相关的请求
requests处理cookie的三种方式requests处理cookie相关的请求之session requests 提供了一个叫做session类,来实现客户端和服务端的会话保持 使用方法 session = requests.session() response = session.get(url,headers)requests处理cookie相关的请求之co...原创 2018-08-15 00:32:37 · 488 阅读 · 0 评论 -
代理
为什么要使用代理 让服务器以为不是同一个客户端在请求 防止我们的真实地址被泄露,防止被追究 理解正向代理和反向代理的区别 正向代理:对于浏览器知道服务器的真实地址,例如VPN反向代理:浏览器不知道服务器的真实地址,例如nginx用法: requests.get("http://www.baidu.com", proxies = proxies)proxies的形...原创 2018-08-15 00:07:01 · 223 阅读 · 0 评论 -
requests模块的入门使用
response = requests.get(url) response的常用属性:response.text respones.content response.status_code response.request.headers response.headers response.text 和response.content的区别response.text: ...原创 2018-08-15 00:07:26 · 214 阅读 · 0 评论