python之爬取豆瓣前250排名电影标题
本帖最后由 大白baymax 于 2023-7-31 17:46 编辑爬取豆瓣前250排名的电影标题的13行代码。
通过 pip install requests 安装 requests 库 。
话不多说,直接上代码:
import requests
import re
headers = {
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.188"
}
for i in range(0,226,25):
zxcvzx = f"https://movie.douban.com/top250?start={i}&filter="
response = requests.get(zxcvzx, headers=headers)
a = re.findall("<img width=\"100\" alt=\"(.*?)\"", response.text, re.S)
for vbn in a:
print(vbn)
作为PYTHON初学者,代码写的太烂,大佬们轻喷。
优化了一下:
import requests
from bs4 import BeautifulSoup
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.188"
}
session = requests.Session()
session.headers.update(headers)
def get_movie_titles(url):
response = session.get(url)
soup = BeautifulSoup(response.content, "html.parser")
movie_titles = soup.find_all("img", width="100", alt=True)
return for title in movie_titles]
def main():
for i in range(0, 226, 25):
url = f"https://movie.douban.com/top250?start={i}&filter="
movie_titles = get_movie_titles(url)
for title in movie_titles:
print(title)
if __name__ == "__main__":
main()
优化点:
1. 使用 requests 库中的 Session 对象来通过复用连接和全局设置请求头来提高性能。
2. 使用 bs4 库中的 BeautifulSoup 来解析 HTML 内容,而不是使用正则表达式。 从这刻开始,命运的齿轮已经转动,祝我们所有的技术小白都能找到属于自己的巅峰(我也是小白:lol) 感谢分享!赞一个 经典豆瓣,感觉好多爬虫的入门都是教的爬豆瓣电影 哈哈哈当初我们刚学的时候就是这个课后作业:lol {:1_905:} 火车头 傻瓜式操作 百用百爽 我当时学习 python 的 request 也是用这个为例子,也可以用 beautifulsoup 解析 html 内容 感谢分享,很有用 入门可以学习一下 学习到了谢谢分享