1.
# 代理ip # 默认爬虫是使用的是真实IP,为了伪装真实IP,使用代理IP(代理IP会一直在变) # redis 数据库是内存型数据库,既支持将数据存储到内存,也可以将数据进行持久化的本地存储 # redis 非常适合做数据的缓存
2.
3
4.
5.
搜索github官网下载代理池proxypool
知识点:
# pyquery :仿照jquery语法,封装一个包,和bs4有点类似 from pyquery import PyQuery html = """ <div id='content'> <ul class='list'> <li class='one'>One</li> <li class='two'>Two</li> <li class='three'>Three</li> <li class='four'>Four</li> <div id='inner'> <a href='http://www.baidu.com'>百度一下</a> </div> </ul> </div> """ # 利用Pyquery类,对html这个文档进行序列化,结果是一个文档对象 doc_obj = PyQuery(html) print(type(doc_obj)) # 查找元素的方法 ul = doc_obj('.list') # 从doc_obj这个对象中根据类名匹配元素 # print(ul) # ul 是一个对象 # print(type(ul)) # 从ul 中查找a print(ul('a')) # 当前元素对象.find(): 在当前对象中查找后代元素 # 当前元素对象.chrildren(): 在当前对象中查找直接子元素 print(ul.find('a'), '后代元素') # 父元素的查找 # parent(): 直接父元素 # parents(): 所有的父元素 a = ul('a') print(a.parent('#inner'), '直接父元素') print(a.parents(), '所有父元素') # 兄弟元素的查找,不包含自己,和自己同一级的兄弟标签 li = doc_obj('.one') print(li.siblings(),'所有siblings') print(li.siblings('.two'), '我是siblings') # 遍历元素 ul = doc_obj('.list') # generator object res = ul('li').items() #<generator object PyQuery.items at 0x03985B40>生成器对象 for li in res: print(li,'哈哈哈') # 获取标签对象的文本内容 print(li.text(), '文本内容') # 获取标签属性 print(li.attr('class'), '属性')