01 爬虫入门
原生爬虫思路
模拟浏览器请求网页数据(获取html)
提取数据(从html中提取数据)
精炼数据(规范格式,如除空格)
业务实现(对精炼后的数据作需要的处理,如排序)
程序入口
举个例子:
from urllib import request import re # 贵州人才信息网招聘岗位的抓取 class Spider(): # 目标所在特征字符串,组中的内容即为目标:招聘岗位 root_pattern = 'name="thiszw" href="[\s\S]*?" target="[\s\S]*?" title="([\s\S]*?)"' # 模拟网页请求返回网页数据 url = "http://www.gzrc.com.cn/SearchResult.php" def __fetch_content(self): headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0'} page1 = request.Request(Spider.url, headers=headers) htmls = request.urlopen(Spider.url).read() htmls = str(htmls, encoding="GBK") return htmls # 数据提取 def __analyse(self, page): job_name = re.findall(Spider.root_pattern, page) return job_name # 业务处理 def __show(self,job_list): for rank in range(0,len(job_list)): print('no.'+str(rank+1)+' : '+job_list[rank]) def go(self): page = self.__fetch_content() result = self.__analyse(page) self.__show(result) if __name__ == '__main__': spider = Spider() spider.go()
爬虫库(写大型爬虫如分布式、多线程)
Beautiful soup
scrap