如何从网站获取HTML元素?

时间:2019-11-18 02:31:54

标签: javascript json

我一直在尝试查看是否可以以某种方式从诸如“ https://www.yahoo.com”之类的网站上获取HTML元素,例如说新闻的HTML元素。

从我收集到的信息来看,有人说仅使用Javascript是不可能的,而有人说这是可能的。因此,我想澄清一下我是否可以这样做。如果没有,我想知道如果可能的话,我能做些什么。

一些消息人士说我可以使用类似https://javascript.info/xmlhttprequest的东西。

其他信息:因此,我目前正在尝试做的是查看是否有任何新内容添加到网站上,例如他们的新闻提要,并不断对其进行检查/更新。

2 个答案:

答案 0 :(得分:0)

您的问题有点不清楚。您想从哪里获取HTML元素?您的代码在哪里运行?

根据您发布的链接,我假设您正在尝试从浏览器的网页访问它。

不幸的是,由于现代浏览器的安全性限制,如果网页在另一个域上,则无法实现这种操作。

唯一的机会是访问页面服务器端并将其传递到另一个URL(在同一域中)。例如。如果您使用的是PHP服务器,则可以创建另一个包含<?php readfile("https:://www.yahoo.com");的PHP脚本。然后,您可以使用XMLHttpRequest(如您的链接所述)访问您自己的PHP脚本。

答案 1 :(得分:0)

放入

from sys import argv
from fpdf import FPDF
import json
import csv

def write_cover_letter(cover_letter, skills):

    # open csv file and read input
    with open(skills) as skills_csv:

        reader = csv.reader(skills_csv)
        rownum = 0

        for row in reader:

            pdf = FPDF('P', 'mm', 'A4')  # portrait mode, mm , A4 size paper
            pdf.add_page()  # new blank page
            pdf.set_font('Arial', '', 12)  # font, Style (B,U,I) , fontsize in pt.

            #ignore the header row
            if rownum == 0:
                pass

            else:
                model_cover_letter = open(cover_letter, 'r')


                for line in model_cover_letter:

                    line = line.replace('#website', row[0])
                    line = line.replace('#inserttools', ','.join(row[1].split('#')))  # skills are seperated by '#' split and join them
                    line = line.replace('#toolproficient', row[2])
                    line = line.replace('#toolyr', row[3])
                    line = line.replace('#company', row[4])

                    pdf.write(6, line)

                pdf.output('cover_letters/Cover Letter - ' + row[4] + '.pdf', 'F')
                pdf.close()

            rownum = rownum + 1

if __name__ == "__main__":

    # just use the right file names or modify the ones provided
    write_cover_letter(cover_letter, skills)

在您的html文件中,并将axios用于xmlhttprequest

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

文档:https://github.com/axios/axios