开发环境
开发工具:Pycharm
数据库:mysql
虚拟环境:virtualenv和virtualenvwrapper
开发目录:~/scrapy
配置PIP豆瓣源
https://pypi.douban.com/simple/
虚拟环境的安装和配置
pip install virtualenv -i https://pypi.douban.com/simple/ // 下载虚拟环境
virtualenv scrapytest // 创建一个名字为scrapytest的虚拟环境
pip install virtualenvwrapper // 好用的虚拟环境
mkvirtualenv py3scrapy // 创建虚拟环境
workon py3scrapy // 进入虚拟环境
// Linux需要配置~/.bashrc
新增两行
export WORKON_HOME=$HOME/.vitualenvs
source $HOME/AppData/Local/Programs/Python/Python36/Scripts/virtualenvwrapper.sh
source .bashrc
网站类型
动态网站 静态网站 restfulAPI
爬虫的作用
搜索引擎 -- 百度 谷歌 垂直领域搜索引擎
推荐引擎 -- 今日头条
机器学习的样本
数据分析、大数据
正则表达式
启动Pycharm,选择创建好的虚拟环境。
新建一个Python package 取名为:test,再新建一个test.py文件
1530175029119292.png正则基础知识:
1530175108533594.png^代表开头 $代表结尾
?代表非贪婪匹配
+代表1次以上
|代表或者
[]中括号匹配任意一个字符
[]中括号实战:匹配电话号码
[.]在中括号的.和没有其他含义,仅仅代表.和*
\s代表空格 \S代表非空格
\w代表[a-zA-Z0-9_]
实例:
import re
line = 'xxx出生于2001年6月1日'
# line = 'xxx出生于2001/6/1'
# line = 'xxx出生于2001-6-1'
# line = 'xxx出生于2001-06-01'
# line = 'xxx出生于2001-06'
regex_str = '.*出生于(\d{4}[年/-]\d{1,2}([月/-]\d{1,2}日|[月/-]\d{1,2}|$))'
match_obj = re.match(regex_str, line)
if match_obj:
print(match_obj.group(1))
else:
print('no')
爬虫去重策略
将访问过的URL保存到数据库中
将访问过的URL保存到内存set中
url经过md5等方法计算后保存到内存set中
用bitmap方法,将访问过的url通过哈希映射到某一位
使用bloomfilter对bitmap进行哈希改进 降低冲突
网友评论