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,'
')
原文地址:https://www.cnblogs.com/Lee-yl/p/8608845.html