python爬虫新手学习日记(四)

132 阅读1分钟

正则表达式实战

爬取豆瓣中电影名

① 爬虫分析:

进入豆瓣电影排行榜网页:movie.douban.com/chart

image.png 映入眼帘是:悲情三角,我记得,银河护卫队,亲密这些电影,右键查看源代码后按Ctrl+F搜索第一个电影(悲情三角),我们可以看到悲情三角.往下翻还能看到另外的几个电影,今天的目标是爬取到网页源代码中的全部电影名。

image.png
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"))

image.png