python爬虫实战

任务:需要获取的内容:廖雪峰的官方网站中的python部分的标题和内容,之后获取整个python教程的内容,而不仅仅是这一个页面:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000

  1. 对html源码进行分析:

    可以发现Python教程位于class="x-content"的Div下,且这样的div是独一无二的,所以可以通过这个线索获取文章的标题

    文章的内容位于class="x-wiki-content"的Div下,同样可以通过这个线索获取文章的所有内容

  2. 获取文章的标题和内容:

    获取网页的源码,需要使用ruquests模块

    Import request

    Htmlsource=requests.get(‘http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000‘)

  3. 获取标题:
    1. 通过正则表达式进行匹配:

    title=re.findall(‘<h4>(.*?)</h4>‘,htmlsource.text,re.S)[0]

    b)使用xpath获取内容:

    匹配之前需要建立一个类似于树的东西:

    Selector=etree.HTML(htmlsource.text)

    selector.xpath(‘//div[@class="x-content"]/h4/text()‘)[0]

  4. 获取内容:
    1. 通过正则表达式进行匹配

    content=re.findall(‘class="x-wiki-content">(.*?)</div>‘,htmlsource.text,re.S)[0]

    这样获取的内容里面该div所有的内容,你可以通过re模块的sub方法将所有的标签换成空的字符,如:

    re.sub(‘<(.+?)>‘,‘‘,content,count=0)

    1. 通过xpath获取内容

    contentDiv= selector.xpath(‘//div[@class="x-wiki-content"]‘)

    print contentDiv[0].xpath(‘string(.)‘)

  5. 通过第二步,可以实现对一个网页中的内容进行提取,那么接下来我们就要对该网页中左侧的链接进行提取,以便根据提取到的url获取python教程的所有内容
  6. 对网站左侧的html源码进行分析并获取urllist:

    可以需要获取的内容所处的位置大致是ul-->li-->a,经过查询发现class="uk-nav uk-nav-side"ul有4,而我们需要获取的是第二个,所以Selector.xpath(‘//ul[@class="uk-nav uk-nav-side"]‘)[1]就是我们想要的ul

    另外href显示的是相对路径,与真正的网络地址相比缺少了域名和http,因此获取这个href之后,需要我们进一步的处理

    使用正则表达式是比较麻烦的,因此获取url可以使用更为简单的xpath

    Urllist=[]

    Linklist=Selector.xpath(‘//ul[@class="uk-nav uk-nav-side"]‘)[1]

    for i in linklist:

    urllist.append(‘http://www.liaoxuefeng.com‘ + i.xpath(‘a/@href‘)[0])

    这样就获取到了想要的urllist了

  7. 根据这些url获取所有的title和content

    第一种方法是遍历urllist:

    根据url获取title和content,然后可以将其写入到一个文件中,速度非常慢,可能需要1分多钟

    第二种方法是通过map()函数:

    传入一个爬虫函数(参数是url),和一个url列表

时间: 2024-08-24 17:58:01

python爬虫实战的相关文章

Python爬虫实战(2):爬取京东商品列表

1,引言 在上一篇<Python爬虫实战:爬取Drupal论坛帖子列表>,爬取了一个用Drupal做的论坛,是静态页面,抓取比较容易,即使直接解析html源文件都可以抓取到需要的内容.相反,JavaScript实现的动态网页内容,无法从html源代码抓取需要的内容,必须先执行JavaScript. 我们在<Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容>一文已经成功检验了动态网页内容的抓取方法,本文将实验程序进行改写,使用开源Python爬虫

Python爬虫实战七之计算大学本学期绩点

大家好,本次为大家带来的项目是计算大学本学期绩点.首先说明的是,博主来自山东大学,有属于个人的学生成绩管理系统,需要学号密码才可以登录,不过可能广大读者没有这个学号密码,不能实际进行操作,所以最主要的还是获取它的原理.最主要的是了解cookie的相关操作. 本篇目标 1.模拟登录学生成绩管理系统 2.抓取本学期成绩界面 3.计算打印本学期成绩 1.URL的获取 恩,博主来自山东大学~ 先贴一个URL,让大家知道我们学校学生信息系统的网站构架,主页是 http://jwxt.sdu.edu.cn:

Python爬虫实战四之抓取淘宝MM照片

福利啊福利,本次为大家带来的项目是抓取淘宝MM照片并保存起来,大家有没有很激动呢? 最新动态 更新时间:2015/8/2 最近好多读者反映代码已经不能用了,原因是淘宝索引页的MM链接改了.网站改版了,URL的索引已经和之前的不一样了,之前可以直接跳转到每个MM的个性域名,现在中间加了一个跳转页,本以为可以通过这个页面然后跳转到原来的个性域名,而经过一番折腾发现,这个跳转页中的内容是JS动态生成的,所以不能用Urllib库来直接抓取了,本篇就只提供学习思路,代码不能继续用了. 之后博主会利用其它方

Python爬虫实战二之爬取百度贴吧帖子

大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 前言 亲爱的们,教程比较旧了,百度贴吧页面可能改版,可能代码不好使,八成是正则表达式那儿匹配不到了,请更改一下正则,当然最主要的还是帮助大家理解思路. 2016/12/2 本篇目标 1.对百度贴吧的任意帖子进行抓取 2.指定是否只抓取楼主发帖内容 3.将抓取到的内容分析并保存到文件 1.URL格式的确定 首先,我们先观察一下百度贴吧的任意一个帖子. 比如:ht

python爬虫实战——5分钟做个图片自动下载器

python爬虫实战--图片自动下载器 制作爬虫的基本步骤 顺便通过这个小例子,可以掌握一些有关制作爬虫的基本的步骤. 一般来说,制作一个爬虫需要分以下几个步骤: 分析需求(对,需求分析非常重要,不要告诉我你老师没教你) 分析网页源代码,配合F12(没有F12那么乱的网页源代码,你想看死我?) 编写正则表达式或者XPath表达式(就是前面说的那个神器) 正式编写python爬虫代码 效果 运行: 恩,让我输入关键词,让我想想,输入什么好呢?好像有点暴露爱好了. 回车 好像开始下载了!好赞!,我看

【图文详解】python爬虫实战——5分钟做个图片自动下载器

python爬虫实战--图片自动下载器 之前介绍了那么多基本知识[Python爬虫]入门知识,大家也估计手痒了.想要实际做个小东西来看看,毕竟: talk is cheap show me the code! 制作爬虫的基本步骤 顺便通过这个小例子,可以掌握一些有关制作爬虫的基本的步骤. 一般来说,制作一个爬虫需要分以下几个步骤: 1. 分析需求(对,需求分析非常重要,不要告诉我你老师没教你) 2. 分析网页源代码,配合F12(没有F12那么乱的网页源代码,你想看死我?) 3. 编写正则表达式或

Python爬虫实战---抓取图书馆借阅信息

原创作品,引用请表明出处:Python爬虫实战---抓取图书馆借阅信息 前段时间在图书馆借了很多书,借得多了就容易忘记每本书的应还日期,老是担心自己会违约,影响日后借书,而自己又懒得总是登录到学校图书馆借阅系统查看,于是就打算写一个爬虫来抓取自己的借阅信息,把每本书的应还日期给爬下来,并写入txt文件,这样每次忘了就可以打开该txt文件查看,每次借阅信息改变了,只要再重新运行一遍该程序,原txt文件就会被新文件覆盖,里面的内容得到更新. 用到的技术: Python版本是 2.7 ,同时用到了ur

Python爬虫实战(4):豆瓣小组话题数据采集—动态网页

1, 引言 注释:上一篇<Python爬虫实战(3):安居客房产经纪人信息采集>,访问的网页是静态网页,有朋友模仿那个实战来采集动态加载豆瓣小组的网页,结果不成功.本篇是针对动态网页的数据采集编程实战. Python开源网络爬虫项目启动之初,我们就把网络爬虫分成两类:即时爬虫和收割式网络爬虫.为了适应各种应用场景,GooSeeker的整个网络爬虫产品线包含了四类产品,如下图所示: 本实战是上图中的"独立python爬虫"的一个实例,以采集豆瓣小组讨论话题(https://w

转 Python爬虫实战二之爬取百度贴吧帖子

静觅 » Python爬虫实战二之爬取百度贴吧帖子 大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 本篇目标 1.对百度贴吧的任意帖子进行抓取 2.指定是否只抓取楼主发帖内容 3.将抓取到的内容分析并保存到文件

Python 爬虫实战(二):使用 requests-html

Python 爬虫实战(一):使用 requests 和 BeautifulSoup,我们使用了 requests 做网络请求,拿到网页数据再用 BeautifulSoup 解析,就在前不久,requests 作者 kennethreitz 出了一个新库 requests-html,Pythonic HTML Parsing for Humans?,它可以用于解析 HTML 文档的.requests-html 是基于现有的框架 PyQuery.Requests.lxml 等库进行了二次封装,更加