@python爬虫 爬取豆瓣Top250电影名
方法 | 功能 |
---|---|
GET | 向指定的资源发出“显示”请求。只用于读取数据:可能会被网络蜘蛛等随意访问。 |
PUT | 向指定资源位置上传输最新内容。 |
HEAD | 与GET方法一样;可以在不必传输内容的情况下,将获取到其中“关于该资源的信息 |
POST | 向指定资源提交数据,请求服务器进行处理 |
DELETE | 请求服务器删除Request-URL所标识的资源,或二者皆有。 |
TRACE | 回显服务器收到的请求,主要用于测试或诊断。 |
OPTIONS | 可使服务器传回该资源所支持的所有HTTP请求方法。用“*”来代表资源名称向Web服务器发送OPTIONS请求,可以测试服务器共能是否正常。 |
CONNECT | 通常用于SSL加密服务器的连接(经由非加密的HTTP代理服务器)。方法名称是区分大小写的。当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405(Method Not Allowed),当服务器不认识或者不支持对应的请求方法的时候,应当返回状态码501(Not Implemented) |
HTML | 搭建整个网页的骨架 |
---|---|
CSS | 包括我们看到的颜色,每个模块的大小、位置等都是由 CSS 来控制的 |
JavaScript | 网页的数据动态交互:网页上的动画 |
2.Elements 中可以看到网页的源代码
3.“Network”工具可以清楚地查看网页加载网络资源地过程和相关信息
图片 | img |
---|---|
视频 | video |
段落 | p |
布局标签嵌套 | div |
JS | style |
以爬取豆瓣top250电影名为例
import requests
from bs4 import BeautifulSoup
import pandas as pd
url = 'https://movie.douban.com/top250'
res = requests.get(url)
text = res.text
text
2. 定位所需信息
#构造分页数字列表
page_indexs = range(0, 250, 25)
list(page_indexs)
def download_all_htmls():
"""
下载所有列表页面的HTML,用于后续的分析
"""
htmls = []
for idx in page_indexs:
url = f"https://movie.douban.com/top250?start={idx}&filter="
print("craw html:", url)
r = requests.get(url,
headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)"})
if r.status_code != 200:
raise Exception("error")
htmls.append(r.text)
return htmls
#执行爬取
htmls = download_all_htmls()
htmls[0]
3.解析HTML得到数据