
爬虫
怀北_ZY
这个作者很懒,什么都没留下…
展开
-
requests模块
requests的作用发送网络请求,返回响应数据中文文档 : http://docs.python-requests.org/zh_CN/latest/index.htmlrequests模块发送简单的get请求、获取响应需求:通过requests向百度首页发送请求,获取百度首页的数据import requests # 目标urlurl = 'https://www...原创 2018-11-22 18:49:14 · 235 阅读 · 0 评论 -
打码平台的使用
为什么需要了解打码平台的使用现在很多网站都会使用验证码来进行反爬,所以为了能够更好的获取数据,需要了解如何使用打码平台爬虫中的验证码常见的验证码的种类url地址不变,验证码不变这是验证码里面非常简单的一种类型,对应的只需要获取验证码的地址,然后请求,通过打码平台识别即可url地址不变,验证码变化这种验证码的类型是更加常见的一种类型,对于这种验证码,大家需要思考:在登录...原创 2018-11-24 23:39:17 · 2310 阅读 · 0 评论 -
常见的反爬手段和解决思路
明确反反爬的主要思路反反爬的主要思路就是:尽可能的去模拟浏览器,浏览器在如何操作,代码中就如何去实现。例如:浏览器先请求了地址url1,保留了cookie在本地,之后请求地址url2,带上了之前的cookie,代码中也可以这样去实现。通过headers字段来反爬headers中有很多字段,这些字段都有可能会被对方服务器拿过来进行判断是否为爬虫通过headers中的Use...原创 2018-11-24 23:35:17 · 1747 阅读 · 0 评论 -
selenium的其他方法
selenium 处理cookiedriver.get_cookies()获取的是完整的cookie信息!不光有name、value,还有domain等其他信息!# 把cookie转化为字典cookies_dict = {cookie[‘name’]: cookie[‘value’] for cookie in driver.get_cookies()}#删除一条cookiedr...原创 2018-11-24 23:31:56 · 183 阅读 · 0 评论 -
元素定位的方法
selenium的定位操作定位元素语法:```pythonfind_element_by_id (返回一个元素)find_elements_by_xpath (返回一个包含元素的列表)find_elements_by_link_text (根据连接文本获取元素列表)find_elements_by_partial_link_text (根据链接包含的文本获取元素列表)find...原创 2018-11-24 23:29:57 · 629 阅读 · 0 评论 -
selenium的基本使用
加载网页:selenium通过控制浏览器,所以对应的获取的数据都是elements中的内容```pythonfrom selenium import webdriver # 指定driver的绝对路径# driver = webdriver.PhantomJS(executable_path='/home/worker/Desktop/driver/phantomjs') d...原创 2018-11-24 23:27:52 · 183 阅读 · 0 评论 -
线程池和协程池实现爬虫
协程池模块使用介绍协程池模块 import gevent.monkey gevent.monkey.patch_all() from gevent.pool import Pool# coding=utf-8import gevent.monkeygevent.monkey.patch_all()from gevent.pool import Poolimport r...原创 2018-11-24 23:24:21 · 306 阅读 · 0 评论 -
线程池实现爬虫
线程池使用方法介绍 实例化线程池对象 from multiprocessing.dummy import Pool pool = Pool(processes=3) # 默认大小是cup的个数 """源码内容: if processes is None: processes = os.cpu_count() or 1 # 此处or的用法: ...原创 2018-11-24 23:22:40 · 297 阅读 · 0 评论 -
多进程爬虫
多进程程的方法使用from multiprocessing import Process #导入模块t1 = Process(targe=func,args=(,)) #使用一个进程来执行一个函数t1.daemon = True #设置为守护进程t1.start() #此时线程才会启动多进程中队列的使用多进程中使用普通的队列模块会发生阻塞,对应的需要使用multiproce...原创 2018-11-24 23:20:27 · 207 阅读 · 0 评论 -
多线程爬虫
多线程的方法使用在python3中,主线程主进程结束,子线程,子进程不会结束为了能够让主线程回收子线程,可以把子线程设置为守护线程,即该线程不重要,主线程结束,子线程结束t1 = threading.Thread(targe=func,args=(,))t1.setDaemon(True) # 设置为守护线程t1.start() #此时线程才会启动队列模块的使用from...原创 2018-11-24 23:18:48 · 208 阅读 · 0 评论 -
单线程爬虫实现
# coding=utf-8import requestsfrom lxml import etreeimport timeclass QiuBai: def __init__(self): self.temp_url = "http://www.qiushibaike.com/8hr/page/{}" self.headers = {"User...原创 2018-11-24 23:16:17 · 283 阅读 · 0 评论 -
lxml模块
lxml模块的入门使用 导入lxml 的 etree 库 (导入没有提示不代表不能用) from lxml import etree 利用etree.HTML,将字符串转化为Element对象,Element对象具有xpath的方法,返回结果的列表,能够接受bytes类型的数据和str类型的数据 html = etree.HTML(text) ret_list =...原创 2018-11-22 19:10:43 · 769 阅读 · 0 评论 -
数据提取之xpath
xpath中节点选择的工具Chrome插件 XPath Helper 下载地址:https://pan.baidu.com/s/1UM94dcwgus4SgECuoJ-Jcg 密码:337b 把文件的后缀名crx改为rar,然后解压到xpath_.... 把解压后的文件夹拖入到已经开启开发者模式的chrome浏览器扩展程序界面 重启浏览器 Firefox插件 XPath C...原创 2018-11-22 19:07:49 · 344 阅读 · 0 评论 -
数据提取之正则
re模块的常见方法re.match(从头找一个) re.search(找一个) re.findall(找所有) 返回一个列表,没有就是空列表 re.findall("\d","chuan1zhi2") >> ["1","2"] re.sub(替换) re.sub("\d","_","chuan1zhi2") &am原创 2018-11-22 19:05:39 · 289 阅读 · 0 评论 -
数据的提取方法
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。适用于进行数据交互的场景,比如网站前台与后台之间的数据交互。json相关的方法(load loads dump dumps)具体使用方法:import jsonmydict = { "store": { ...原创 2018-11-22 19:03:22 · 1211 阅读 · 0 评论 -
爬虫中数据的分类
爬虫中数据的分类在爬虫爬取的数据中有很多不同类型的数据,我们需要了解数据的不同类型来又规律的提取和解析数据.结构化数据:json,xml等 处理方式:直接转化为python类型 非结构化数据:HTML 处理方式:正则表达式、xpath ...原创 2018-11-22 18:57:46 · 1509 阅读 · 0 评论 -
requests模块
爬虫中使用cookie为了能够通过爬虫获取到登录后的页面,或者是解决通过cookie的反扒,需要使用request来处理cookie相关的请求requests处理cookie的方法使用requests处理cookie有三种方法:cookie字符串放在headers中 把cookie字典放传给请求方法的cookies参数接收 使用requests提供的session模块co...原创 2018-11-22 18:55:55 · 237 阅读 · 0 评论 -
requests模块
使用requests发送POST请求登录注册( POST 比 GET 更安全) 需要传输大文本内容的时候( POST 请求对数据长度没有要求)所以同样的,我们的爬虫也需要在这两个地方回去模拟浏览器发送post请求1.1 requests发送post请求语法: 用法: response = requests.post("http://www.baidu.com/", \...原创 2018-11-22 18:52:00 · 216 阅读 · 0 评论 -
JS的解析
js2py的使用js2py的介绍js2py是一个js的翻译工具,也是一个通过纯python实现的js的解释器,github上源码与示例s的执行思路js的执行方式大致分为两种:在了解了js内容和执行顺序之后,通过python来完成js的执行过程,得到结果在了解了js内容和执行顺序之后,使用类似js2py的模块来执js代码,得到结果但是在使用python程序实现js的执行时...原创 2018-11-25 00:09:22 · 3051 阅读 · 0 评论