python笔记3----第一个小爬虫
1、先看看要爬的网站有没有爬虫协议,可以看该网站有没有robots.txt,如豆瓣的:

2、requests模块:【requests是第三方,代码比python自带的urllib模块简单】
先加载requests模块,然后输入要抓取的地址:
import requests
r=requests.get(‘https://book.douban.com/subject/28135034/?icn=index-latestbook-subject')
print(r.text)
结果如下:输出该网页的代码源

运用BeautifulSoup,BeautifulSoup是用来从HTML和xml中提取数据的Python库。
#导入BeautifulSoup
from bs4 import BeautifulSoup
#把要提取的源码加入汤里
soup=BeautifulSoup(r.text,'html')
#find_all函数是将<p class='comment-content’> </p>之间的字符串找出来
pattern=soup.find_all('p','comment-content')
#将每一个字符串打印出来。
for item in pattern:
print(item.string)
运用正则表达式来获取评分:
#导入正则表达式模块
import re
sum=0
#将正则表达式的字符串形式编译成pattern实例,观察源代码,评分是在以下的标签中,(.*?)是正则表达式,懒惰匹配
pattern_s=re.compile('<span class="user-stars allstars(.*?) rating"')
#使用Pattern实例处理文本并获得匹配结果
p=re.findall(pattern_s,r.text)
for i in p:
#i是字符串,需要转化成整型
sum+=int(i)
print(i)
print(sum)
3、urllib模块小程序:
目的:将以下网页的出版社爬取出来

from urllib import request
import re #读取数据
data=request.urlopen('https://read.douban.com/provider/all').read()
#中文转码,将Unicode码转成utf-8,将中文显示出来
data=data.decode('utf-8')
#观察网页,将需要爬取数据正则表达式写出来
pat='<div class="name">(.*?)</div>'
#从数据源中爬取正则表达式中的数据,注意data要转成str
res=re.compile(pat).findall(str(data))
#res为列表,所有数据集合的列表,可以打印出来
for item in res:
print(item)
写入文件中,如写入‘E://1.txt'
file=open('E://1.txt','w')
for item in res:
file.write(item,'\n')
python笔记3----第一个小爬虫的更多相关文章
- Python爬虫01——第一个小爬虫
Python小爬虫——贴吧图片的爬取 在对Python有了一定的基础学习后,进行贴吧图片抓取小程序的编写. 目标: 首先肯定要实现图片抓取这个基本功能 然后实现对用户所给的链接进行抓取 最后要有一定的 ...
- Python 学习(1) 简单的小爬虫
最近抽空学了两天的Python,基础知识都看完了,正好想申请个联通日租卡,就花了2小时写了个小爬虫,爬一下联通日租卡的申请页面,看有没有好记一点的手机号~ 人工挑眼都挑花了. 用的IDE是PyCh ...
- Python笔记_第一篇_面向过程_第一部分_8.画图工具(小海龟turtle)
turtle 是一个简单的绘图工具. 提供一个小海龟,可以把它理解为一个机器人,只能听懂有限的命令,且绘图窗口的原点(0,0)在中间,默认海龟的方向是右侧海龟的命令包括三类:运动命令.笔画控制命令.其 ...
- 从Python小白到第一个小游戏发布
1.安装必要的环境(附图两张) 直接下载安装程序,本人win10系统,根据电脑系统下载并安装对应的python.exe,安装路径可以选择D盘的,具体安装细节这里就不说了,不知道的可以留言或者找度娘 2 ...
- Python笔记_第一篇_面向过程_第一部分_5.Python数据类型之字符串类型(string)
关于Python的字符串处理也如其他语言一样属于重点中的重点,主要是牵扯到的函数和内容较为多和乱一些.关于什么是字符串,Python中的定义是:以单引号或者双引号括起来的任意文本. 1. 字符串的 ...
- Python笔记_第一篇_面向过程_第一部分_2.内存详解
Python的很多教材中并没有讲内存方面的知识,但是内存的知识非常重要,对于计算机工作原理和方便理解编程语言是非常重要的,尤其是小白,因此需要把这一方面加上,能够更加深入的理解编程语言.这里引用了C语 ...
- Python笔记_第一篇_面向过程_第一部分_0.开场白
*什么是Python? Python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido(吉多) van Rossum于1989年发明,第一个公开版本发行于1991年.在国外应用非常的广泛,国 ...
- Python笔记_第一篇_面向过程第一部分_6.循环控制语句(while 和 for)_
承接条件控制语句.条件控制语句像大树一样有很多的之差,那条路径通(也就是表达式判断为True)就会往哪一个树杈去运行,万涓溪水汇成大河.对于常用的程序结构形式,还有一种这篇文章就会讲解,那就是循环控制 ...
- 使用Python写的第一个网络爬虫程序
今天尝试使用python写一个网络爬虫代码,主要是想訪问某个站点,从中选取感兴趣的信息,并将信息依照一定的格式保存早Excel中. 此代码中主要使用到了python的以下几个功能,因为对python不 ...
- python3速查参考- python基础 1 -> python版本选择+第一个小程序
题外话: Python版本:最新的3.6 安装注意点:勾选添加路径后自定义安装到硬盘的一级目录,例如本人的安装路径: F:\Python 原因:可以自动添加python环境变量,自动关联.py文件,其 ...
随机推荐
- jvm学习-ClassLoader(二)
ClassLoader结构 jdk加载的4个步骤 CustomClassLoader 用户自定义的classLoader APPClassLoader主要加载classPath下面的class Ext ...
- redis-不常用的命令
在不重启redis服务器的情况下,动态的修改Redis的配置 redis> config set loglevel warning
- [bzoj1195][HNOI2006]最短母串_动态规划_状压dp
最短母串 bzoj-1195 HNOI-2006 题目大意:给一个包含n个字符串的字符集,求一个字典序最小的字符串使得字符集中所有的串都是该串的子串. 注释:$1\le n\le 12$,$1\le ...
- 关于Hanoi算法
java经典算法——河内算法(Hanoi) 有三根相邻的柱子,标号为A,B,C,A柱子上从下到上按金字塔状叠放着n个不同大小的圆盘,要把所有盘子一个一个移动到柱子B上,并且每次移动同一根柱子上都不能出 ...
- mysql 安装完毕后登陆不了mysql的 shell 即mysql>遇到:ERROR 1045 (28000): Access denied for user 'root'@'localhost‘
[root@hzswtb2-mpc ~]# mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using pas ...
- Ext.TabPanel中的items具体解释
Ext.TabPanel中的items: (来自项目源代码中的items条目代码) items:{ id:"opt1", title:"默认页面", tabTi ...
- 链接提交-js代码推送进化版
百度站长平台提供链接索引的自动提交JS脚本已经有一段时日了.用百度自己的话讲:JS链接推送代码以网页为最小对象,服务于全平台多终端,PC站和移动站均可使用.安装代码的页面在任意平台(浏览器.微信.微博 ...
- 实战c++中的vector系列--vector应用之STL的find、find_if、find_end、find_first_of、find_if_not(C++11)
使用vector容器,即避免不了进行查找,所以今天就罗列一些stl的find算法应用于vector中. find() Returns an iterator to the first element ...
- 并查集图冲突hdu1272
还是属于并查集的变形 两个点仅仅有一条路径连通 给出的两个点事先都是属于两个集合的 须要给出的着条边构成一个集合 算法复杂度还是挺高的 每一个我都循环了100000次 set2数组没清空 wrong了 ...
- maven 自建库
maven repository 标签: mavenjarxmlserver工具磁盘 2009-11-26 10:56 42322人阅读 评论(7) 收藏 举报 目录(?)[+] 什么是Mav ...