一,安装编程工具并进入编程界面

首先去https://www.continuum.io/downloads/网站下载Anaconda工具并安装;打开cmd,输入jupyter notebook并回车(win7),他会自动帮你打开编辑界面(基于浏览器的);点击new按钮新建一个Python3的编辑框,他会弹出一个新窗口,好了现在可以敲代码了。

二,爬取整个页面

  1. import requests          #导入requests模块
  2. res = requests.get('http://study.163.com/')        #调用模块中的get方法,以网易云课堂为例
  3. print(res.text)         #打印整个页面内容

三,爬取指定标签的文本

  1. from bs4 import BeautifulSoup         #导入BeautifulSoup模块
  2. html_sample = '<!DOCTYPE html><html><head><meta charset="utf-8">\
  3. <title>文档标题</title></head><body><a id="a1" class="c" href="#">测试数据1</a>\
  4. <a id="a2" class="c" href="##">测试数据2</a>\
  5. </body></html>'        #html_sample变量模拟你读取的整个页面内容,“\”符号在编辑框换行时链接字符串
  6. soup = BeautifulSoup(html_sample,'html.parser')        #爬取页面的所有文本
  7. a=soup.select('a')      #筛选出所有的a标签和对应内容,返回的是个数组
  8. b=soup.select('#a1')      #筛选id为a1的标签和对应内容
  9. c=soup.select('.c')      #筛选class为c的标签和对应内容,返回的是个数组
  10. print(a)         #打印a标签文本,带标签
  11. print(a[0])         #打印第一条a标签文本,带标签
  12. print(a[0].text)         #打印第一条a标签文本,不带标签
  13. for aa in a:
  14. print(aa.text)        #逐条打印a中的文本,不带标签
  15. print(aa['href'])       #逐条打印a中的链接

四,常见的一些代码

a=soup.select('a')
l=len(a)         #数组a的长度
aa=a[0].contents         #第一个a标签的内容
aa.strip()        #去掉收尾空格
type(a)       #a的数据类型
dt =datetime.strptime(timestr,'%Y年%m月%d日%H:%M')        #字符串转时间
dt.strftime('%Y-%m-%d')        #时间转字符串
soup.select('#div p')[:-1]         #选取id为div标签下除了最后一项P元素的所有P元素
article = []       #定义一个list
article.append(a[0].text)       #给list追加元素
'@'.join(article)        #将article中元素用‘@’符号隔开并转换为字符串
[p.text.strip() for p in soup.select('#artibody p')]        #返回一个list,内容为p.text
newsurl.split('/')        #字符串分割
newsurl.rstrip('.html')         #去掉字符串末尾指定字符
newsurl.lstrip('aaa')         #去掉字符串首指定字符
re.search('aaa(.+).html')         #截取字符串,需引入re
jd = json.loads(comments.text.strip('var data='))       #读取json,需要引入json
commentURL .format('gda')         #将commentURL中的‘{}’替换为'gda'
def getNewsDetial(newsurl)         #定义一个函数,参数为newsurl

建议先到网络上找一些视频教程学习一些python语言基础,治标不治本没用的。。。

Python爬虫初学者学习笔记(带注释)的更多相关文章

  1. Requests:Python HTTP Module学习笔记(一)(转)

    Requests:Python HTTP Module学习笔记(一) 在学习用python写爬虫的时候用到了Requests这个Http网络库,这个库简单好用并且功能强大,完全可以代替python的标 ...

  2. Python Built-in Function 学习笔记

    Python Built-in Function 学习笔记 1. 匿名函数 1.1 什么是匿名函数 python允许使用lambda来创建一个匿名函数,匿名是因为他不需要以标准的方式来声明,比如def ...

  3. scrapy爬虫框架学习笔记(一)

    scrapy爬虫框架学习笔记(一) 1.安装scrapy pip install scrapy 2.新建工程: (1)打开命令行模式 (2)进入要新建工程的目录 (3)运行命令: scrapy sta ...

  4. Python爬虫系统化学习(2)

    Python爬虫系统学习(2) 动态网页爬取 当网页使用Javascript时候,很多内容不会出现在HTML源代码中,所以爬取静态页面的技术可能无法使用.因此我们需要用动态网页抓取的两种技术:通过浏览 ...

  5. Python爬虫系统学习(1)

    Python爬虫系统化学习(1) 前言:爬虫的学习对生活中很多事情都很有帮助,比如买房的时候爬取房价,爬取影评之类的,学习爬虫也是在提升对Python的掌握,所以我准备用2-3周的晚上时间,提升自己对 ...

  6. Python爬虫系统化学习(4)

    Python爬虫系统化学习(4) 在之前的学习过程中,我们学习了如何爬取页面,对页面进行解析并且提取我们需要的数据. 在通过解析得到我们想要的数据后,最重要的步骤就是保存数据. 一般的数据存储方式有两 ...

  7. Python爬虫系统化学习(5)

    Python爬虫系统化学习(5) 多线程爬虫,在之前的网络编程中,我学习过多线程socket进行单服务器对多客户端的连接,通过使用多线程编程,可以大大提升爬虫的效率. Python多线程爬虫主要由三部 ...

  8. 一个Python爬虫工程师学习养成记

    大数据的时代,网络爬虫已经成为了获取数据的一个重要手段. 但要学习好爬虫并没有那么简单.首先知识点和方向实在是太多了,它关系到了计算机网络.编程基础.前端开发.后端开发.App 开发与逆向.网络安全. ...

  9. Python快速入门学习笔记(二)

    注:本学习笔记参考了廖雪峰老师的Python学习教程,教程地址为:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb49318210 ...

随机推荐

  1. java 反射获取方法返回值类型

    //ProceedingJoinPoint pjp //获取方法返回值类型 Object[] args = pjp.getArgs(); Class<?>[] paramsCls = ne ...

  2. 转载: http状态码

    消息   这一类型的状态码,代表请求已被接受,需要继续处理.这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束.由于 HTTP/1.0 协议中没有定义任何 1xx 状态码,所以除非在 ...

  3. 表单传参,在action中的参数得不到

    写上面这个的时候,发现传过去的url路径是这样的 在action后面的pro=login得不到. 只需要将method中的get改成post就可以了

  4. MinHook 分析01 (x86的jmp+offset类型hook)

    MinHook的原理就在于重写目标函数.在这次分析的X86模式中,32位相对JMP覆盖了整个地址空间.因为在相对地址计算中溢出的位被忽略,所以在X86模式中,函数的地址是容易掌控的. 直接来进入正题. ...

  5. 定义一个Map集合,key和value不规定类型,任意放入数据,用keySet()和 entrySet()两种方式遍历出Map集合的数据

    package com.lanxi.demo1_1_1; import java.util.HashMap; import java.util.Iterator; import java.util.M ...

  6. element-项目用到偏门方法~

    开发项目的时候,组件库的使用有时会为我们节省开发时间,提高开发效率,但组件库样式有时与我们的设计图出入很大,还有的方法也很偏门,主要官方文档有时候对于一些方法和属性介绍的也比较少,以下是我在工作中总结 ...

  7. The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.

    今天用mysql连接数据库时,出现The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than o ...

  8. Hadoop Hive HBase Spark Storm概念解释

    HadoopHadoop是什么? 答:一个分布式系统基础架构. Hadoop解决了什么问题? 答:解决了大数据(大到一台计算机无法进行存储,一台计算机无法在要求的时间内进行处理)的可靠存储(HDFS) ...

  9. 用Webstrom搭建Vue项目

    一.首先要有Node.js   Webpack环境 1.Node.js:是一个能够在服务器端运行JavaScript的开放源代码,跨平台JavaScript运行环境.Node采用Google开发的V8 ...

  10. Prime ring problem,递归,广搜,回溯法枚举,很好的题

    题目描述: A ring is compose of n circles as shown in diagram. Put natural number 1, 2, ..., n into each ...