正则表达式实战
爬取豆瓣中电影名
① 爬虫分析:
进入豆瓣电影排行榜网页:movie.douban.com/chart
映入眼帘是:悲情三角,我记得,银河护卫队,亲密这些电影,右键查看源代码后按Ctrl+F搜索第一个电影(悲情三角),我们可以看到悲情三角.往下翻还能看到另外的几个电影,今天的目标是爬取到网页源代码中的全部电影名。
285行的这一句源代码
<a class="nbg" href="<https://movie.douban.com/subject/27066152/>" title="悲情三角">
我们可以封装成正则表达式:
<a class="nbg" href=".*?" title="(?P<title>.*?)
而title就是我们所需要的电影名
### ②代码分析
import re # 正则表达式库
import requests
url = "https://movie.douban.com/chart" # 豆瓣网站
headers = { # 浏览器伪装
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 "
"Safari/537.36 "
}
resp = requests.get(url=url, headers=headers)
obj = re.compile('<a class="nbg" href=".*?" title="(?P<title>.*?)">') # 封装正则表达式
ans = obj.finditer(resp.text)
for it in ans:
print(it.group("title"))