视频源自B站,讲解得非常好,感谢星越编程,B站视频网址如下:
https://www.bilibili.com/video/BV1zg411A731?p=5
Pycharm源选清华的,比较快
#learner:stupid_gao
#公众号:easycoder
#software:Pycharm
"""
文件说明
豆瓣top250电影采集
目标需求:采集top250电影的名称以及对应的豆瓣地址
思路拆解:
1 寻找目标数据源
2 建立链接
3 获取源码
4 解析源码
知识点:
https://movie.douban.com/top250?参数=参数值&参数=参数值#锚点
协议://域名/虚拟路径?参数=参数值&参数=参数值#锚点
https: 超文本传输协议 一种规范
movie.douban.com 域名 ----> 方便记忆 ip地址
/top250 : 虚拟路径
函数的封装
定义函数
def 函数名称(参数):
具体代码:def hello(body):
print("您好我是你%s"%body)
hello("爷爷")
调用函数
函数名称
字符串格式化
url = "xxxxxxxx{}"
url.format(替换的内容)
urls = [url.format(num*25) for num in range(10)]
通过循环动态生成链表中的内容
"""
#加载库
import requests #建立网络连接的工具
from bs4 import BeautifulSoup as bs #网页解析工具
import time
def get_movie(url):
"""
豆瓣电影函数
:param url:
:return:
"""
# 反爬虫,请求头
header = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4768.0 Safari/537.36"
}
# print(requests.get("https://movie.douban.com/top250",headers=header).text)
# 通过网址建立链接,并获取源代码源代码
resp = requests.get(url, headers=header).text
# 解析源码
# 将原材料加载到这些工厂
soup = bs(resp, "html.parser")
# 解析数据
# 获取到所有的名字<div class = "hd">的容器
items = soup.find_all("div", class_="hd")
# 通过循环依次取出每一个容器
for i in items:
# 获取a标签
tag = i.find("a")
# 获取电影链接
link = tag["href"]
# 获取电影名称
name = tag.find(class_="title").text
print("电影名称是%s=====电影地址%s" % (name, link))
#定义基本地址
url = "https://movie.douban.com/top250?start={}"
urls = [url.format(num*25) for num in range(10)]
print(urls)
#动态访问不同的地址
for link in urls:
get_movie(link)
time.sleep(5)