我一直在尝试查看是否可以以某种方式从诸如“ https://www.yahoo.com”之类的网站上获取HTML元素,例如说新闻的HTML元素。
从我收集到的信息来看,有人说仅使用Javascript是不可能的,而有人说这是可能的。因此,我想澄清一下我是否可以这样做。如果没有,我想知道如果可能的话,我能做些什么。
一些消息人士说我可以使用类似https://javascript.info/xmlhttprequest的东西。
其他信息:因此,我目前正在尝试做的是查看是否有任何新内容添加到网站上,例如他们的新闻提要,并不断对其进行检查/更新。
答案 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>