有道翻译的爬虫+煎蛋网图片下载
先介绍主要的包: urllib.request, urllib.parse
1 | urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None) |
主体部分
1 | import urllib.request |
电脑访问
1 | data=urllib.parse.urlencode(data).encode('utf-8')#解析,编码成utf-8形式,以便传给服务器 |
更改Header伪装成人类用户,先介绍Request()
1 | #对Request的参数可通过add_header(key,val)#添加header |
1 | #head改变user-Agent选项,防止被服务器屏蔽 |
设置延时再访问(time.sleep())
1 | import time |
代理(urllib.request)
1、参数是一个字典{‘类型’,’代理ip:端口号’}
1 | proxy_support=urllib.request.ProxyHandler({}) |
2、定制、创建一个opener(个人理解网址打开器)
1 | opener=urllib.request.build_opener(proxy_support) |
3、安装opener
1 | urllib.request.install_opener(opener) |
4、调用opener
1 | opener.open(url) |
代码:
1 | import urllib.request |
爬取网站图片练习
1 | import urllib.request |
运行结果
使用scrapy框架爬取http://www.dmoztools.net
生成scrapy_test项目
1 | pip install scrapy |
生成的默认文件结构
1 | scrapy_test |
item.py
1 | import scrapy |
domz.py
1 | import scrapy |
cmd中scrapy genspider 项目名称 域名
scrapy genspider dmoz dmoz.org生成相应代码
读取
基于Xpath和CSS的表达式机制:Scrapy Selectors
xpath(),css():传入各自表达式,返回对应的selector list
extract():序列化节点为Unicode字符串,返回list
re():根据正则表达式,返回list