一天,老板不滿地說:“喂,你這C#爬蟲怎么連標題都沒給我抓回來?我需要的是一份完整的報告,包括所有網頁的標題,趕緊給我重新抓一遍!”那一刻,我仿佛看到了老板眼中閃爍的怒火,感受到了他對我工作的失望。
我仿佛看到了老板眼中閃爍的怒火,就像是火山即將爆發前的預兆。我心里咯噔一下,知道這次可能玩大了。
我趕緊賠著笑臉說:“老板,真不好意思,這次是我的失誤。我馬上就去給您抓回那些‘逃跑’的標題!”
其實我心里暗笑,因為那些標題我早就抓回來了,只是故意沒展示出來。這可是職場生存法則啊,不能一次交出所有秘密,得留點懸念,讓老板對你始終保持期待和好奇。你覺得這樣做對嗎?歡迎討論,哈哈!
代碼其實很簡單:
// 使用XPath查詢獲取title標簽
HtmlNode titleNode = doc.DocumentNode.SelectSingleNode("//title");
//這行代碼是使用C#的HtmlAgilityPack庫來從HTML文檔中提取<title>標簽的內容。
//目的是從doc表示的HTML文檔中選擇第一個<title>標簽,并將這個標簽的節點對象賦值給titleNode變量。
如果要獲取<title>標簽中的文本內容,這樣寫:
string titleText = titleNode?.InnerText;
這里,?.是一個null條件運算符,如果titleNode為null(也就是說沒有找到<title>標簽),
則titleText會被賦值為null,否則,它會被賦值為<title>標簽中的文本內容。
這個代碼是怎么使用的呢?下面我解釋下實現過程:
static string? ParseTitleData(string htmlContent)
{
if (string.IsNullOrEmpty(htmlContent))
{
return null;
}
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(htmlContent);
// 使用XPath查詢獲取title標簽
HtmlNode titleNode = doc.DocumentNode.SelectSingleNode("//title");
if (titleNode != null)
{
// 獲取title節點的文本內容
string titleText = titleNode.InnerText.Trim();
return "頁面標題: " + titleText;
}
else
{
// 如果沒有找到title標簽,返回null
return null;
}
}
//這段代碼定義了一個名為 ParseTitleData 的靜態方法,
//它接受一個 htmlContent 字符串作為輸入,并試圖從中解析出網頁的標題。
//該方法使用 HtmlAgilityPack 庫來解析 HTML 內容。
是不是很簡單?這個方法的目的是從給定的 HTML 內容中提取網頁的標題。如果成功找到標題,它會返回一個包含 "頁面標題: " 和實際標題的字符串。如果 HTML 內容為空、null 或不包含 <title> 標簽,它會返回 null。
看效果:
完整代碼是包括如何異步獲取網頁內容的。如果有朋友需要的話,請關注我并留言,今天就寫到這吧,太晚了,休息啦!
ocument.write() 用法
在JavaScript中document.write()函數可以向文檔寫入HTML表達式或JavaScript代碼,用法“document.write(exp1,exp2,exp3,....)”,該函數可接受任何多個參數,并將其寫入文檔中。
document.write() 說明
雖然根據 DOM 標準,該方法只接受單個字符串作為參數。
我們通常按照兩種的方式使用 write() 方法:一是在使用該方在文檔中輸出 HTML,另一種是在調用該方法的的窗口之外的窗口、框架中產生新文檔。在第二種情況中,請務必使用 close() 方法來關閉文檔。
document.write() 實例
<html>
<body>
<script type="text/javascript">
document.write("Hello World!");
</script>
</body>
</html>
以上就是JavaScript document.write() 用法的詳細內容。
這里小編是一個有著10年工作經驗的前端高級工程師,關于web前端有許多的技術干貨,包括但不限于各大廠的最新面試題系列、前端項目、最新前端路線等。需要的伙伴可以私信我
發送【前端資料】
就可以獲取領取地址,免費送給大家。對于學習web前端有任何問題(學習方法,學習效率,如何就業)都可以問我。希望你也能憑自己的努力,成為下一個優秀的程序員
、nuget 引用
Select.HtmlToPdf
2、方法
using SelectPdf;
using System.Collections.Specialized;
using System.IO;
using System.Web;
namespace BQoolCommon.Helpers.File
{
public class WebToPdf
{
public WebToPdf()
{
//SelectPdf.GlobalProperties.LicenseKey = "your-license-key";
}
/// <summary>
/// 將 Html 轉成 PDF,並儲存成檔案
/// </summary>
/// <param name="html">html</param>
/// <param name="fileName">絕對路徑</param>
public void SaveToFileByHtml(string html, string fileName)
{
var doc = SetPdfDocument(html);
doc.Save(fileName);
}
/// <summary>
/// 傳入 Url 轉成 PDF,並儲存成檔案
/// </summary>
/// <param name="url">url</param>
/// <param name="fileName">絕對路徑</param>
/// <param name="httpCookies">Cookies</param>
public void SaveToFileByUrl(string url, string fileName, NameValueCollection httpCookies)
{
var doc = SetPdfDocument(url, httpCookies);
doc.Save(fileName);
}
/// <summary>
/// 將 Html 轉成 PDF,並輸出成 byte[] 格式
/// </summary>
/// <param name="html">html</param>
/// <returns></returns>
public byte[] GetFileByteByHtml(string html)
{
var doc = SetPdfDocument(html);
return doc.Save();
}
/// <summary>
/// 傳入 Url 轉成 PDF,並輸出成 byte[] 格式
/// </summary>
/// <param name="url">url</param>
/// <param name="httpCookies">Cookies</param>
/// <returns></returns>
public byte[] GetFileByteByUrl(string url, NameValueCollection httpCookies)
{
var doc = SetPdfDocument(url, httpCookies);
return doc.Save();
}
/// <summary>
/// 將 Html 轉成 PDF,並輸出成 Stream 格式
/// </summary>
/// <param name="html">html</param>
/// <returns></returns>
public Stream GetFileStreamByHtml(string html)
{
var doc = SetPdfDocument(html);
var pdfStream = new MemoryStream();
doc.Save(pdfStream);
pdfStream.Position = 0;
return pdfStream;
}
/// <summary>
/// 傳入 Url 轉成 PDF,並輸出成 Stream 格式
/// </summary>
/// <param name="html">html</param>
/// <returns></returns>
public Stream GetFileStreamByUrl(string url, NameValueCollection httpCookies)
{
var doc = SetPdfDocument(url, httpCookies);
var pdfStream = new MemoryStream();
doc.Save(pdfStream);
pdfStream.Position = 0;
return pdfStream;
}
private PdfDocument SetPdfDocument(string html)
{
var converter = new HtmlToPdf();
converter.Options.WebPageWidth = 1200;
html = HttpUtility.HtmlDecode(html);
return converter.ConvertHtmlString(html);
}
private PdfDocument SetPdfDocument(string url, NameValueCollection httpCookies)
{
var converter = new HtmlToPdf();
converter.Options.WebPageWidth = 1200;
if (httpCookies != && httpCookies.Count != 0)
{
converter.Options.HttpCookies.Add(httpCookies);
}
return converter.ConvertUrl(url);
}
}
}
*請認真填寫需求信息,我們會在24小時內與您取得聯系。