目录
※一、理解网页结构
★1.1查看网页源代码
★1.2检查
※二、获取网页数据
★2.1 安装requests库
★2.2 使用requests发生网络请求
★2.3伪装成普通用户
※2.4获取豆瓣电影标题
※参考:
※一、理解网页结构
一个网页通常由三部分代码组成:HTML代码、CSS代码和Javascript代码。
★1.1查看网页源代码
★1.2检查
鼠标移动到任意位置,右击选择检查,可以看到鼠标移动到的位置对应的代码
※二、获取网页数据
要提取网页信息,需要把网页数据下载下来
使用requests库可以实现
首先
★2.1 安装requests库
打开cmd命令提示符,输入pip install requests,回车
★2.2 使用requests发生网络请求
输入以下代码显示baidu.com的网络数据内容
import requests
res = requests.get('https://www.baidu.com/')
print(res.content.decode())
★2.3伪装成普通用户
如果直接获取豆瓣网的数据
>>> import requests
>>> res=requests.get('https://movie.douban.com/subject/35205446/?from=showing')
>>> print(res.content.decode())
发现没有任何结果,因为豆瓣网识别了我们的程序是一个爬虫,而豆瓣网不允许爬虫访问
解决办法:伪装成普通用户
要伪装成普通用户可以设置一个 headers
参数
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36"}
import requests
res=requests.get('https://movie.douban.com/subject/35205446/?from=showing',headers=headers)
print(res.content.decode())
如何获取headers?请参考python爬取时怎么获取头部header_z2431435的博客-博客_pythonheaders怎么获取
※2.4获取豆瓣电影标题
可以看出标题格式
<span property="v:itemreviewed">铁道英雄</span>
知道了标题的格式,就可以用正则表达式获取标题的内容
正则表达式是什么呢?python 正则表达式_m0_52043808的博客-博客
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36"}
import requests
res=requests.get('https://movie.douban.com/subject/35205446/?from=showing',headers=headers)
page=res.content.decode()
import re
title=re.search(r'<span property="v:itemreviewed">(.*?)</span>',page,re.S)#(.*?)是要搜索的内容
print(title.group(1))#读取第一组数组
※参考:
编程胶囊-打造学习编程的最好系统