当前位置: 主页 > Python语言

python爬取动态网页-动态网页爬取pdf

发布时间:2023-02-09 14:06   浏览次数:次   作者:佚名

<button class="Button QuestionMainAction"
type="button">查看更多回答</button>

经过

driver.find_element_by_css_selector('button.QuestionMainAction').click()

选择并单击此按钮。

3.HTML文件结构

构造并保存html文件,解析并存储原始页面的html

html通过prettify()结构化python爬取动态网页,然后存储在本地的txt文件中。

4.保存并下载图片

注意,我们的目的是爬取答案下的图片,其他的不需要。

还是右键查看,可以找到每张图片上的节点,没错,里面有图片的高清网址和缩略图网址。

每个元素都由 html 实体编码python爬取动态网页,因此我们必须按如下方式对其进行解码。

html.parser.unescape

然后您可以保存图像 URL。

最后下载镜像。

urllib.request.urlretrieve

5.结果展示

这里写图片描述

这里写图片描述

[外链图片传输失败,源站可能有防盗链机制,建议保存图片直接上传(img-8DFggSLg-1538729559650)()]

6.代码

from selenium import webdriver
import time
import urllib.request
from bs4 import BeautifulSoup
import html.parser
def main():
    driver = webdriver.Chrome()  # 打开浏览器
    driver.get("https://www.zhihu.com/question/40273344") # 打开想要爬取的知乎页面 
    # 模拟用户操作
    def execute_times(times):
        for i in range(times):
            driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
            time.sleep(2)
            try:
                driver.find_element_by_css_selector('button.QuestionMainAction').click()
                print("page" + str(i))
                time.sleep(1)
            except:
                break
    execute_times(5)
    result_raw = driver.page_source  # 这是原网页 HTML 信息
    result_soup = BeautifulSoup(result_raw, 'html.parser')# 然后将其解析
    result_bf = result_soup.prettify()  # 结构化原 HTML 文件
    with open("./output/rawfile/raw_result.txt", 'w',encoding="utf-8") as girls:  # 存储路径里的文件夹需要事先创建。
        girls.write(result_bf)
    girls.close()
    print("爬取回答页面成功!!!")
    with open("./output/rawfile/noscript_meta.txt", 'wb') as noscript_meta:
        noscript_nodes = result_soup.find_all('noscript')  # 找到所有