Python爬虫入门

开发环境

开发工具: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爬虫入门_第1张图片
1530174962129904.png

新建一个Python package 取名为:test,再新建一个test.py文件

Python爬虫入门_第2张图片
1530175029119292.png

正则基础知识:

Python爬虫入门_第3张图片
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进行哈希改进 降低冲突

你可能感兴趣的:(Python爬虫入门)