文章目录
1 概述
网络爬虫应用一般分为两个步骤:
通过网页链接获取网页内容;对获得的网页内容进行处理。
这两个步骤分别使用不同的函数库:requests和beautifulsoup4。
采用pip指令安装requests库:
pip install requests
request库是一个简洁且简单的处理HTTP请求的第三方库,这个库建立在python语言的urllib3库的基础上。requests库支持非常丰富的链接访问功能,包括国际域名和URL获取、HTTP长连接和连接缓存、HTTP会话和cookie保持、流数据下载等。
采用pip指令安装beautifulsoup4库:
pip install beautifulsoup4
beautifulsoup4库由于解析和处理HTML和XML。beautifulsoup4采用面向对象思想实现,简单的说,他把每个页面当作一个对象,通过< a >.< b >的方式调用对象的属性(即包含的内容),或者通过< a >.< b >()的方式调用方法(即处理函数)。
在使用beautifulsoup4库之前,需要进行引用,可以用from-import方式从库中直接引用BeautifulSoup类,方法如下:
from bs4 import BeautifulSoup
2 简单爬虫实例
import requests #对网页进行请求
from bs4 import BeautifulSoup #网页解析库
for i in range(0,100,10): #0到100以10为步长,range总是考虑后面的数减步长
url = 'http://maoyan.com/board/4?offset={}'.format(i) #猫眼top100数据所在网页
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'} #因为猫眼对爬虫或许有反爬措施,所以这里进行简单的处理,将我们的爬虫伪装成是人访问
response = requests.get(url,headers = headers) #对网页进行请求并返回值
html = response.text #将网页内容以html返回
soup = BeautifulSoup(html,'lxml') #解析网页的一种方法
name = soup.find_all('p',class_="name") #对电影名字的定位
score = soup.find_all('p',class_="score") #对电影评分的定位
time = soup.find_all('p',class_="releasetime") #对电影上映时间的定位
artist = soup.find_all('p',class_="star") #对主演的定位
dic = {} #创建一个字典,用来储存
for n in range(len(name)) : #对于每一部电影进行同样的内容处理
print(name[n].text) #实现提取电影名字
print(artist[n].text.strip()[3:]) #获取主演名字
print(time[n].text[5:]) #上映时间
print(score[n].text) #评分
print(dic) #输出字典
运行结果:
qq_40945375 发布了8 篇原创文章 · 获赞 0 · 访问量 151 私信 关注