python爬虫爬取幽默笑话网站-创新互联
爬取网站为:http://xiaohua.zol.com.cn/youmo/
创新互联公司2013年开创至今,是专业互联网技术服务公司,拥有项目成都网站制作、网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元梧州做网站,已为上家服务,为梧州各地企业和个人服务,联系电话:18980820575查看网页机构,爬取笑话内容时存在如下问题:
1、每页需要进入“查看更多”链接下面网页进行进一步爬取内容每页查看更多链接内容比较多,多任务进行,这里采用线程池的方式,可以有效地控制系统中并发线程的数量。避免当系统中包含有大量的并发线程时,导致系统性能下降,甚至导致 Python 解释器崩溃,引入线程池,花费时间更少,更效率。
- 创建线程 池threadpool.ThreadPool()
- 创建需要线程池处理的任务即threadpool.makeRequests(),makeRequests存放的是要开启多线程的函数,以及函数相关参数和回调函数,其中回调函数可以不写(默认是无)。
- 将创建的多个任务put到线程池中,threadpool.putRequest()
- 等到所有任务处理完毕theadpool.pool()
2、查看链接笑话页内容,div元素内部文本分布比较混乱。有的分布在
链接内有的属于div的文本,可采用正则表达式的方式解决。
注意2种获取元素节点的方式:
1)lxml获取节点字符串
res=requests.get(url,headers=headers) html = res.text lxml 获取节点写法 element=etree.HTML(html) divEle=element.xpath("//div[@class='article-text']")[0] # 获取div节点 div= etree.tostring(divEle, encoding = 'utf-8' ).decode('utf-8') # 转换为div字符串
新闻名称:python爬虫爬取幽默笑话网站-创新互联
网址分享:http://lswzjz.com/article/heiid.html