第3次作业-MOOC学习笔记:Python网络爬虫与信息提取

第3次作业-MOOC学习笔记:Python网络爬虫与信息提取_第1张图片

第3次作业-MOOC学习笔记:Python网络爬虫与信息提取_第2张图片第3次作业-MOOC学习笔记:Python网络爬虫与信息提取_第3张图片

 

大三python就有开设过python课程而且在平时逛知乎时便体会到了python的强大。这一次在学习了Python网络爬虫与信息提取》课程后,逐渐将爬虫这一概念通过基础的实操具化让我对这门语言更加感兴趣了

 

课程循序渐进,通过这几周的学习,大概了解了python网络爬虫和信息提取的相关知识。嵩天老师主要是从一下几点结合案例给我们讲解 1. Requests库:自动爬取HTML页面以及网络请求提交。2 .Robots.txt:网络爬虫排除标准。3.Beautiful Soup库:解析HTML页面。4.Re库:正则表达式详解以及提取页面关键信息。5.Projects:实战项目A/B。6.Scrapy库:网络爬虫原理介绍以及专业爬虫框架介绍

 

在第一周的课件网络爬虫之规则中,分别介绍了requests库,网络爬虫的弊端与解决方法,运用requests库的五个实例。网络爬虫很方便和高效的从HTML网页中提取信息,并且多线程,进程模块成熟稳定,提升整个系统和分析能力。但是,网络爬虫也存在一定的弊端,首先,受限于编写水平和目的,网络爬虫将会为web服务器带来巨大的资源开销;其次,网络爬虫的法律风险;最后,网络爬虫泄露隐私,但总体来说,利仍大于弊。在最后老师提出的五个实例中,其中,从亚马逊抓取一个商品信息的实例中,很好的体现了requests库的应用。

 

在第二周的课件网络爬虫的提取中,先是详细的介绍了Beautiful Soup库,然后再介绍信息标记的三种方法,最后介绍信息提取的方法,并给出实例。三种信息标记分别是:一、XMLInternet上的应用信息交互与传递;二、JSON,移动应用云端和节点的信息通信,无法注释;三、YAML,各类系统的配置文件,有注释易读。信息提取的一般方法:一、完整解析信息的标记形式,再提取关键信息;二、无视标记形式,直接搜索关键信息;三、融合方法,结合形式解析与搜索方法,提取关键信息。实例中采用了requests-bs4路线实现中国大学排名定向爬虫。

 

在第三周的课件网络爬虫之实战中,首先对正则表达式进行了详解。利用正则表达式和re库的结合提取页面的关键信息,并把此应用到淘宝商品的实例中。在股票数据定向爬虫中,采用requests-bs4-re路线实现了股票信息爬取和存储,实现了展示爬取进程的动态滚动条。

 

在第四周的课件网络爬虫之框架中,主要讲解了Scrapy爬虫框架。与requests库相比较,Scrapy是网站级爬虫,并且是一个框架,并发性好,性能较高,requests重点在页面下载,而Scrapy重点在于爬虫结构,一般定制灵活,深度定制困难。完整配置并实现Scrapy爬虫的主要过程:1.建立工程和Spider模板;2.编写Spider3.编写Pipeline:处理spider提取信息的后续的功能;4.配置优化:使得爬虫运行的更好。

 

其中最让我感兴趣的还是这是第一周的实操部分,关于其中一个案例的实操:京东商品页面的爬取 

 

对象:https://item.jd.com/100000947807.html

 

1.采用get()方法,获取Response对象;

 

import requests

 

url = 'https://item.jd.com/100000947807.html'

r = requests.get(url)

print(r.status_code)

                                                                      

 

r.status_code状态码为200,获取成功。

 

2.采用encoding,查看编码

 

print(r.encoding)

结果:gbk

 

说明从页面的头部分就可以解析页面的编码信息

 

全代码

 

import requests

url = "https://item.jd.com/100000304401.html"

try:

    r = requests.get(url)

    r.raise_for_status()

    r.encoding = r.apparent_encoding

    print(r.text[:1000])

except:

    print("爬取失败")

 

其中  r.raise_for_status()在方法内部判断r.status_code是否等于200,不需要增加额外的if语句,该语句便于利用try‐except进行异常处理

      

网络爬虫可以做到分析教务系统网络接口,用程序在网上抢最热门的课;爬取网络公开的用户信息,并汇总出售;持续关注某个人的微博或朋友圈,自动为新发布的内容点赞等。而个人电脑中数据没有联网且没有通过Web服务器以URL形式被网络访问,则不能用爬虫获取。作为一名程序员最重要的是谨记,能爬取数据,数据的知识产权仍然受保护,商业获利将涉嫌违法,不可触碰

      

通过这一次的网络爬虫的学习,我发现python是一门干练有趣的语言,而且所做的项目都很实用但如今的我大多数只是还只是停留在表面,距离一个合格的程序员还有很大的一段距离,在接下来的学习中我将多加学习扩展一些内容补充知识,做到全面的提升。

 

你可能感兴趣的:(第3次作业-MOOC学习笔记:Python网络爬虫与信息提取)