好久沒來部落格園發帖啦!
先附:
代碼分享如下:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
dt.Rows.Clear();
//要抓取的URL地址
string Url = "http://list.mp3.baidu.com/topso/mp3topsong.html?id=1#top2";
//得到指定Url的源碼
string strWebContent = GetWebContent(Url);
// richTextBox1.Text = strWebContent;
//取出和資料有關的那段源碼
int iBodyStart = strWebContent.IndexOf("<body", 0);
int iStart = strWebContent.IndexOf("歌曲TOP500", iBodyStart);
int iTableStart = strWebContent.IndexOf("<table", iStart);
int iTableEnd = strWebContent.IndexOf("</table>", iTableStart);
string strWeb = strWebContent.Substring(iTableStart, iTableEnd - iTableStart + 8);
//產生HtmlDocument
WebBrowser webb = new WebBrowser();
webb.Navigate("about:blank");
HtmlDocument htmldoc = webb.Document.OpenNew(true);
htmldoc.Write(strWeb);
HtmlElementCollection htmlTR = htmldoc.GetElementsByTagName("TR");
// DataRow row = null;
foreach (HtmlElement tr in htmlTR)
{
string strID = tr.GetElementsByTagName("TD")[0].InnerText;
string[] info = tr.GetElementsByTagName("TD")[1].InnerText.Split('(');
string strName = "";
string strSinger = "";
if (info.Length != 2)
{
strName = info[0];
strSinger = "未知";
}
else
{
strName = info[0];
strSinger = info[1].Replace(")", "");
}
strID = strID.Replace(".", "");
DataRow row = dt.NewRow();
row["ID"] = strID;
row["voide"] = strName;
row["name"] = strSinger;
dt.Rows.Add(row);
string strID1 = tr.GetElementsByTagName("TD")[2].InnerText;
string[] info1 = tr.GetElementsByTagName("TD")[3].InnerText.Split('(');
string strName1 = "";
string strSinger1 = "";
if (info1.Length != 2)
{
strName1 = info1[0];
strSinger1 = "未知";
}
else
{
strName1 = info1[0];
strSinger1 = info1[1].Replace(")", "");
}
strID1 = strID1.Replace(".", "");
DataRow row1 = dt.NewRow();
row1["ID"] = strID1;
row1["voide"] = strName1;
row1["name"] = strSinger1;
dt.Rows.Add(row1);
//string strID2 = tr.GetElementsByTagName("TD")[3].InnerText;
//string[] info2 = tr.GetElementsByTagName("TD")[4].InnerText.Split('(');
//string strName2 = "";
//string strSinger2 = "";
//if (info1.Length != 2)
//{
// strName2 = info1[0];
// strSinger2 = "未知";
//}
//else
//{
// strName2 = info1[0];
// strSinger2 = info1[1].Replace(")", "");
//}
//strID1 = strID2.Replace(".", "");
//DataRow row2 = dt.NewRow();
//row2["ID"] = strID2;
//row2["voide"] = strName2;
//row2["name"] = strSinger2;
//dt.Rows.Add(row2);
}
////插入資料庫
//// InsertData(dt);
dataGridView1.DataSource = dt.DefaultView;
}
private string GetWebContent(string Url)
{
string strResult = "";
try
{
//建立訪問目標
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
//聲明一個HttpWebRequest請求
request.Timeout = 30000;
//設定連線逾時時間
request.Headers.Set("Pragma", "no-cache");
//得到回應
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
//得到資料流
Stream streamReceive = response.GetResponseStream();
//對擷取到的資料流進行編碼解析,讓我們可以進行正常讀取
Encoding encoding = Encoding.GetEncoding("GB2312");
StreamReader streamReader = new StreamReader(streamReceive, encoding);
//讀取出資料流中的資訊
strResult = streamReader.ReadToEnd();
//關閉流
streamReader.Close();
//關閉網路響應流
response.Close();
}
catch
{
MessageBox.Show("出錯");
}
return strResult;
}
static DataTable dt = new DataTable();
private void Form1_Load(object sender, EventArgs e)
{
DataColumn ID = new DataColumn();
DataColumn voideName = new DataColumn();
DataColumn name = new DataColumn();
ID.ColumnName = "ID";
voideName.ColumnName = "voide";
name.ColumnName = "name";
dt.Columns.Add(ID);
dt.Columns.Add(voideName);
dt.Columns.Add(name);
}
}
|
紐約時尚|韓版百搭時尚休閑大V領帥氣型男短袖T恤 白色 |
| 39.0元 |
|