1.0C# 爬取京东数据
文章介绍:
大家好,我是行不更名,坐不改姓的宋晓刚,下面将带领大家从基础小白到高阶的C#的抓取数据学习,跟上我的步伐进入C#的世界。
微信:15319589104
QQ: 2981345658
此项目讲的是C#爬取京东数据,并且保存到数据库中。
思路:
- 抓取京东数据,京东的商品分很多类目,京东中基本上所有都是类目设计
- 如果按照一个一个商品来抓取,会有很多的商品数据,无法抓取
- 通过类目来抓取,任何一个商品都用一个类目的归属
- 先把类目给确定下来,然后根据类目把所有的类目下的所有的商品都给抓取到
数据的注释:
- 类目的名称,描述多级目录的层级,目录Url地址,第一步,获取京东所有分类
- 我们这边首先抓取的网址是 : https://www.jd.com/allSort.aspx
实操:
配置网络请求环境:
在本项目下创建HttpRequestUtil文件夹,并创建一个类WebRequestHelper,代码有注释:
/// <summary>
/// http://tool.sufeinet.com/HttpHelper.aspx
/// </summary>
public class WebRequestHelper
{
/// <summary>
/// 根据url下载内容 之前是GB2312
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public static string DownloadUrl(string url)
{
return DownloadHtml(url, Encoding.UTF8);
}
/// <summary>
/// 下载html
/// http://tool.sufeinet.com/HttpHelper.aspx
/// HttpWebRequest功能比较丰富,WebClient使用比较简单
/// WebRequest
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public static string DownloadHtml(string url, Encoding encode)
{
string html = string.Empty;
try
{
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;//模拟请求
request.Timeout = 30 * 1000;//设置30s的超时
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36";
request.ContentType = "text/html; charset=utf-8";// "text/html;charset=gbk";//
//request.Host = "search.yhd.com";
//request.Headers.Add("Cookie", @"newUserFlag=1; guid=YFT7C9E6TMFU93FKFVEN7TEA5HTCF5DQ26HZ; gray=959782; cid=av9kKvNkAPJ10JGqM_rB_vDhKxKM62PfyjkB4kdFgFY5y5VO; abtest=31; _ga=GA1.2.334889819.1425524072; grouponAreaId=37; provinceId=20; search_showFreeShipping=1; rURL=http%3A%2F%2Fsearch.yhd.com%2Fc0-0%2Fkiphone%2F20%2F%3Ftp%3D1.1.12.0.73.Ko3mjRR-11-FH7eo; aut=5GTM45VFJZ3RCTU21MHT4YCG1QTYXERWBBUFS4; ac=57265177%40qq.com; msessionid=H5ACCUBNPHMJY3HCK4DRF5VD5VA9MYQW; gc=84358431%2C102362736%2C20001585%2C73387122; tma=40580330.95741028.1425524063040