第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

聊聊爬蟲(chóng)

標(biāo)簽:
Python

图片描述

环境

pip --trusted-host pypi.python.org install virtualenv
pip install -i https://pypi.douban.com/simple/ django
新建虚拟环境
virtualenv scrapytest
cd scripts 
activate.bat
deactivate.bat
virtualenv -p python3地址 scrapypy3
apt-get install python-virtualenv
启动
source activate
pip install virtualenvwrapper
find / -name virtualenvwrapper.sh
vim ~/.bashrc
source ~/.bashrc
修改路径
export WORKON_HOME=$HOME/.virtualenvs

windows 
pip install virtualenvwrapper-win
workon
workon 虚拟环境
mkvirtualenv 虚拟环境名 默认保存在C盘
更换位置
Path
WORKON_HOME 地址(Evns)
把C盘文件拷贝过来
退出deactivate
在项目中
pip install requests
pip install scrapy 报错
缺少依赖库libxml2
www.lfd.uci.edu/~gohlke/pythonlibs
lxml 下载
workon 虚拟环境
pip install 文件名
pip install scrapy

python3
mkvirtualenv --python=py3路径 py3scrapy

技术选型

  • twisted 异步IO,BSoup是纯python型框架,xpath是c编写的
    图片描述

正则

  • ^后一个字符做为开头
  • . 任意字符
  • 0-n个字符
  • $ 前一个字符做为结尾
  • ? 非贪婪匹配,匹配后一个字符,从左边开始匹配(贪婪匹配就是反向匹配,从右边开始)
  • 前面字符最少出现一次
  • {2} {2,} {2,5} 出现两次,出现最少两次,出现2到5次
  • | 或,左边的优先
  • () 提取子字符串
  • [] 其中字符只要满足一个就行
  • [^] 非
  • [.] [*] 没有任何特殊含义
  • [a-z] a到z的任意字母
  • \s 空格(一个字符)
  • \S 不为空格(一个字符)
  • \w [A-Za-z0-9_]
  • \W 上面相反
  • [\u4E00-\u9FA5] 所有中文
  • \d 数字
__author__ == 'hanxiao'

line = 'b0000000b123'
regex_str = "^b.*"
if re.match(regex_str,line)

图片描述

字符串编码

图片描述

在编程中,unicode比utf-8更简单,而utf-8在内存中就更复杂

爬虫去重策略

图片描述

字符MD5编码,100Byte压缩到16个Byte(128个bit),而且不重复
4.中八个位置为一byte.缺点,hash冲突很大,大概12MB
P.S.
bit,位 :二进制数系统中,每个0或1就是一个位(bit),是存储信息的最小单位。
Byte,字节 :字节是由8个位所组成,可存储一个字符:字母(AZ)、数字(09)、或符号(,.?!%&±*/)、以及一些控制信息等。
1 Byte = 8 bit
通常用大写B表示byte即字节,用小写b表示bit即位,一个字节=八个位,即1B=8b。

  • 目标
  • 二级域名下所用内容
  • 深度优先和广度优先遍历
  • 利用页面中的“所有文章“
  • 利用最后的页码
  • 利用下一页的超链接
    图片描述

xpath

图片描述

scrapy shell http://blog.hx.com/110287/
title= reponse.xpath("http://div[@class='entry-header']/h1/text()")
title.etract()[0] 取数组第一位,如果为空,抛异常,优化
tite.etract_first("") 无报错
strip() 去掉空格
replace(".","") 

css选择器

图片描述

图片描述

scrapy突破反爬虫限制

图片描述

模拟登录

  • selenium
    • chromedriver
      • 防止识别,去掉js便量
        • chrome.exe --remote-debugger-port=9222 ,其他chrome关闭
    • mouse
      • 屏幕坐标获取工具
      • ifu python第三方包

反爬

  • user-agent
  • ip访问频率限制
  • 必须登录(账号访问频率)
  • 动态网页
  • 前端js逻辑加密和混淆
  • 机器学习分析爬虫行为
    • 只请求html
    • css代码下毒
  • referer
fake user-agent
#禁止Scrapy等工具的抓取 
if($http_ user agent ~*(ScrapylCurllHttpClientlpython)){ return 403;
 #禁止非GET|HEADIPOST方式的抓取 
 if($request method !~^(GETIHEADIPOST)$){ return 403;

command

  • scrapy genspider url
  • scrapy shell -s USER_AGENT=’’
  • xpath可以使用或者
  • scrapy genspider -t crawl url
  • scrapy 信号量
  • phantomjs, 无界面的浏览器, 多进程情况下phantomjs性能会下降很严重,因为是同步,不过可以重写downloader来实现异步
    • browser = webdriver.PhantomJS(executable_path="E:/home/phantomjs-2.1.1-windows/bin/phantomjs.exe")
    • pyvirtualdisplay
      • selenium 驱动浏览器需要打开浏览器,而浏览器需要图形化界面。如果你在 liunx 服务器上直接运行肯定会报错,所以可以使用 pyvirtualdisplay 虚拟一个显示器
      • scrapy暂停与重启
        • 暂停信号是ctrl c ,不是kill
        • scrapy crawl lagou -s JOBDI=path
        • seen 已经访问过的url
          • 去重方法 request_seen->request_fingerprint(sha1)
    • 部署
      • scrapyd-client
        • scrayd-deploy -l 列出要部署的目标地址
點(diǎn)擊查看更多內(nèi)容
4人點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶(hù)
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專(zhuān)欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消