哔哩哔哩漫画的图片下载地址只能在XHR里看到,html里头没有,这种要怎么爬求思路
分析XHR请求:观察哔哩哔哩漫画官网的网页,并使用浏览器开发者工具(通常按F12键打开)查看XHR(XMLHttpRequest)请求。XHR通常用于异步加载数据,包括漫画图片等。在开发者工具的"Network"或"Network/XHR"选项卡下,找到与漫画图片相关的XHR请求,并查看其请求URL和请求参数。
模拟请求:使用Python的网络请求库(例如requests)发送模拟的XHR请求,将漫画图片的URL作为请求URL,并提供必要的请求参数。可以尝试直接使用浏览器中观察到的请求URL,或者分析请求参数的构造方式,以便正确地发送请求并获取漫画图片的数据。
下载图片:一旦获得了漫画图片的数据,你可以将其保存为本地文件。使用Python的文件操作功能,可以将获取到的二进制数据保存为图片文件(例如JPEG、PNG等格式)。
以下是一个简单的示例代码,演示了如何使用Python的requests库实现上述思路:
import requests
def download_comic_image(url, filename):
response = requests.get(url)
if response.status_code == 200:
with open(filename, 'wb') as file:
file.write(response.content)
print(f"下载成功:{filename}")
else:
print(f"下载失败:{filename}")
# 替换为实际的漫画图片URL
image_url = 'https://example.com/comic_image.jpg'
# 替换为保存的文件名
filename = 'comic_image.jpg'
download_comic_image(image_url, filename)
from bs4 import BeautifulSoup
def create_doc_from_filename(filename):
fo = open(filename, "r", encoding='utf-8')
html_content = fo.read()
fo.close()
doc = BeautifulSoup(html_content)
return doc
doc = create_doc_from_filename("htmls/tv2.html")
box_list = doc.find_all("div", class_ = "myui-vodlist_box")
for box in box_list:
title_label = box.find_all("h4")[0]
rating_label = box.find_all("span", class_ = "pic-tag pic-tag-top")[0]
stars_label = box.find_all("p")[0]
#使用strip去除前后空格
title = title_label.text.strip()
rating = rating_label.text.strip()
stars = stars_label.text.strip()
print(title, rating, stars)