获取(复制)网页上的文字

获取(复制)网页上的文字

今天在搜索历史课本上一段文言文的翻译时,找到的网页,屏蔽了右键,不能选择,当然不让复制啦。对于这样的网站可以采用如下方法进行数据的获取,以chrome为例。

1、网页另存为…

在这里插入图片描述

将网页另存为后,用文字编辑软件如:word打开即可。

2、登录微信截图文字识别

登录微信后,按快捷键Alt + A 截取图片,点击方字识别按钮识别。

在这里插入图片描述

3、安装浏览器插件

安装Toggle JavaScript 2.0(插件说明:Enable or disable JavaScript without the hassle.)禁止网页JavaScript。

4、在手机上打开网页后用在线编辑器打开

将网页地址传到微信的文件助手,打开链接,点击右上角三个点,选择“更多打开方式…", 用在线小程序打开。

在这里插入图片描述

5、使用开发者工具

使用爬虫获取接口时,有些网站屏蔽了右键打开检查,可以点击chrome菜单中三个点中选择更多工具中的开发者工具。

在这里插入图片描述

6、使用爬虫解析网页

import requests
from bs4 import BeautifulSoup
from lxml import etree

headers = {
    "accept": "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8",
    "accept-language": "zh-CN,zh;q=0.9",
    "cache-control": "no-cache",
    "dnt": "1",
    "pragma": "no-cache",
    "priority": "u=1, i",
    "sec-ch-ua": "\"Google Chrome\";v=\"105\", \"Not)A;Brand\";v=\"8\", \"Chromium\";v=\"105\"",
    "sec-ch-ua-mobile": "?0",
    "sec-ch-ua-platform": "\"Windows\"",
    "sec-fetch-dest": "image",
    "sec-fetch-mode": "no-cors",
    "sec-fetch-site": "same-origin",
    "sec-fetch-user": "?1",
    "upgrade-insecure-requests": "1",
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36",
    "referer": "https://wbblishi.com/post/161.html",
    "Origin": "https://wbblishi.com",
    "x-requested-with": "XMLHttpRequest",
}
cookies = {
    "PHPSESSID": "lodm1klkvlh1ft2nreaq1olpde",
    "timezone": "8",
    "mochu_us_notice_alert": "1"
}
url = "https://wbblishi.com/post/161.html"

# 发送GET请求
response = requests.get(url, headers=headers, cookies=cookies)

# 确保请求成功
if response.status_code == 200:
    # 尝试从响应头中获取编码并设置
    if 'Content-Type' in response.headers:
        content_type = response.headers['Content-Type']
        if 'charset=' in content_type:
            encoding = content_type.split('charset=')[-1]
            response.encoding = encoding
    else:
        response.encoding = 'utf-8'

    # 获取网页的HTML源码
    html_content = response.text

    # 使用BeautifulSoup解析HTML
    soup = BeautifulSoup(html_content, 'lxml')

    # 使用lxml的etree解析器
    parser = etree.HTMLParser()
    tree = etree.fromstring(str(soup), parser)

    # 使用XPath提取指定范围的内容
    elements = tree.xpath('//*[@id="post-161"]/div/div[1]/p[position() >= 3 and position() <= 124]/span')

    # 输出提取的非None文本内容
    for element in elements:
        text = element.text
        if text:  # 过滤掉 None 和空字符串
            print(text)
else:
    print(f"获取网页失败. Status code: {response.status_code}")

最后结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值