.get cookie with your browser then can do

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net;
using System.Text;
using HtmlAgilityPack;
using Newtonsoft.Json; namespace WindowsFormsApp1
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
// Application.Run(new Form1());
List<string> _listURL = new List<string>();
test(_listURL,null); } static string _signature = "_02B4Z6wo00f01F.sjWQAAIBCgeX81SJdOnBf6YnAAEhxoVC2JRfZ0QahpPnV6EmcPuHz04o3v5s-QKaNBQ2luCcHl2v4nNzEuGllKmCUQVrCn77y3PXmNdXh-3lMlrkkvt4ItWbtvRpTLbfB6f";
static string cookie = "csrftoken=620bbe6e6bec516a228938d9adc9d616; tt_webid=6888172478528259598; MONITOR_WEB_ID=53483fbc-ef71-4859-91cd-1833242346e8; s_v_web_id=verify_kgrjtabo_fuY8uuEL_ry3f_4d0q_8fHv_EJ3P2bCGH4Ky; ttcid=2d01cbca59c4456ba0a8137e857a01e511; tt_scid=LtVXXilIPbrZ2acC-MSiW7ELGN9OtxOtSL0Aof-FE-vtbYbZFhCAJlgknDzQu0uZ32f1";
static Random rnd = new Random(); static void test(List<string> listURL, string max_behot_time)
{
WebClient wc = new WebClient();
wc.Encoding = Encoding.UTF8;
wc.Headers.Add("referer", "https://www.toutiao.com/");
wc.Headers.Add("cookie", cookie);
string url = "https://www.toutiao.com/api/pc/feed/?min_behot_time=0&category=__all__&utm_source=toutiao&widen=1&tadrequire=true&_signature="+_signature;
if ( string.IsNullOrEmpty( max_behot_time)) {
url = "https://www.toutiao.com/api/pc/feed/?max_behot_time=" + max_behot_time + "&category=__all__&utm_source=toutiao&widen=1&tadrequire=true&_signature=" + _signature;
}
string strJson = wc.DownloadString(url);
//then get source_url: group/6887092770658320903/
//contact to be url : https://www.toutiao.com/group/6887092770658320903/
if (strJson == "") return;
var list = JsonConvert.DeserializeObject<NewsObject>(strJson);
list.data.ToList().ForEach(n => listURL.Add("https://www.toutiao.com" + n.source_url));
wc.Dispose();
wc = null;
if (listURL.Count >= 10) {
return;
}
test(listURL, ""+list.next.max_behot_time);
// string str = wc.DownloadString("https://www.toutiao.com/group/6887092770658320903/");
// var htmlText = parseHtml(str);
// cutRandSection(htmlText); } static string parseHtml(string strHtml)
{
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(strHtml);
HtmlNode rootnode = doc.DocumentNode;
string xpathstring = "//article";//</article> ////span[@class='num']/font[last()]
var node = rootnode.SelectSingleNode(xpathstring);
string s = node.InnerText;
return s;
} static string cutRandSection(string htmlText)
{
try
{
var list = htmlText.Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
int i = rnd.Next(0, list.Length + 1);
return list[i];
}
catch
{ return htmlText;
} } static string currTimeStamp{
get{
return ""+ (DateTime.Now.AddMinutes(0).ToUniversalTime().Ticks - 621355968000000000) / 10000000;
} }
} #region NewsObject
public class NewsObject
{
public bool has_more { get; set; }
public string message { get; set; }
public Datum[] data { get; set; }
public Next next { get; set; }
} public class Next
{
public int max_behot_time { get; set; }
} public class Datum
{
public bool single_mode { get; set; }
public string _abstract { get; set; }
public bool middle_mode { get; set; }
public bool more_mode { get; set; }
public string tag { get; set; }
public int comments_count { get; set; }
public string tag_url { get; set; }
public string title { get; set; }
public string chinese_tag { get; set; }
public string source { get; set; }
public long group_source { get; set; }
public bool has_gallery { get; set; }
public string media_url { get; set; }
public string media_avatar_url { get; set; }
public string source_url { get; set; }
public string article_genre { get; set; }
public string item_id { get; set; }
public bool is_feed_ad { get; set; }
public long behot_time { get; set; }
public string image_url { get; set; }
public string group_id { get; set; }
public string middle_image { get; set; }
public Image_List[] image_list { get; set; }
} public class Image_List
{
public string url { get; set; }
} #endregion }

  

make article:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net;
using System.Text;
using HtmlAgilityPack;
using Newtonsoft.Json;
using System.Diagnostics; namespace WindowsFormsApp1
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
// Application.Run(new Form1()); if (keyWords == "") { keyWords="AI智能写作"; }
List<string> _listURL = new List<string>();
getArticleList(_listURL, 0);
MakeArticle(_listURL);
} static string keyWords= "蚂蚁金服上市";
static string _signature = "_02B4Z6wo00f01F.sjWQAAIBCgeX81SJdOnBf6YnAAEhxoVC2JRfZ0QahpPnV6EmcPuHz04o3v5s-QKaNBQ2luCcHl2v4nNzEuGllKmCUQVrCn77y3PXmNdXh-3lMlrkkvt4ItWbtvRpTLbfB6f";
static string cookie = "csrftoken=620bbe6e6bec516a228938d9adc9d616; tt_webid=6888172478528259598; MONITOR_WEB_ID=53483fbc-ef71-4859-91cd-1833242346e8; s_v_web_id=verify_kgrjtabo_fuY8uuEL_ry3f_4d0q_8fHv_EJ3P2bCGH4Ky; ttcid=2d01cbca59c4456ba0a8137e857a01e511; tt_scid=LtVXXilIPbrZ2acC-MSiW7ELGN9OtxOtSL0Aof-FE-vtbYbZFhCAJlgknDzQu0uZ32f1";
static Random rnd = new Random();
static bool includePic = true; static void getArticleList(List<string> listURL, int pageIndex)
{
int pageCount = 20;
string url = "https://www.toutiao.com/api/search/content/?aid=24&app_name=web_search&offset=" + (pageIndex * pageCount) + "&format=json&keyword="+ Uri.EscapeDataString(keyWords)+"&autoload=true&count=20&en_qc=1&cur_tab=1&from=search_tab&pd=synthesis&timestamp=" + currTimeStamp + "000" + "&_signature=" + _signature;
string strJson = HttpGet(url);
if (strJson == "") return;
var list = JsonConvert.DeserializeObject<NewsObject>(strJson);
foreach (var d in list.data.Where(n => !string.IsNullOrEmpty(n.open_url)))
{
listURL.Add("https://www.toutiao.com" + d.open_url);
}
if (listURL.Count >= 20)
{
return;
}
getArticleList(listURL, pageIndex++);
}
static string MakeArticle(List<string> _listURL)
{ string OKArticle = "";
string pic = "";
foreach (var url in _listURL)
{
pic = "";
string strHtml = HttpGet(url);
if (strHtml == "") continue;
ContentData cdata=ParseContentData(strHtml);
if (string.IsNullOrEmpty(cdata.InnerText)) continue;
if (includePic) {
if (cdata.InnerPicUrls != null && cdata.InnerPicUrls.Count > 0)
{
pic = cdata.InnerPicUrls[0];
}
}
OKArticle += "<p><img src='"+pic+"'/></p>"+cutRandSection(cdata.InnerText);
if (OKArticle.Length >= 800) break;
} return OKArticle;
} static ContentData ParseContentData(string strHtml)
{ ContentData cdata = new ContentData() { SoruceHtml=strHtml };
try
{
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(strHtml);
HtmlNode rootnode = doc.DocumentNode;
string xpathstring = "//article";//</article> ////span[@class='num']/font[last()]
var node = rootnode.SelectSingleNode(xpathstring);
if (node == null) return cdata;
string s = node.InnerText;
cdata.InnerText= s;
//
var list = rootnode.SelectNodes("//img");
if (list == null) return cdata;
foreach (var n in list)
{
var picUrl = n.Attributes["src"].Value;
if (string.IsNullOrEmpty(picUrl)|| !picUrl.ToLower().StartsWith("http")) { continue; }
cdata.InnerPicUrls.Add(picUrl);
} }
catch
{ }
return cdata; } enum ddd {
eee,eeer }
static string cutRandSection(string htmlText)
{
try
{
var list = htmlText.Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
int i = rnd.Next(0, list.Length + 1);
return list[i];
}
catch
{ return htmlText;
} } static string currTimeStamp
{
get
{
return "" + (DateTime.Now.AddMinutes(0).ToUniversalTime().Ticks - 621355968000000000) / 10000000;
} } public static string HttpGet(string url)
{ string strJson = "";
try
{
WebClient wc = new WebClient();
wc.Encoding = Encoding.UTF8;
wc.Headers.Add("referer", "https://www.toutiao.com/");
wc.Headers.Add("cookie", cookie);
strJson = wc.DownloadString(url);
wc.Dispose();
wc = null;
}
catch { }
return strJson;
} } public class ContentData {
public string SoruceHtml { get; set; }
public string InnerText { get; set; }
public List<string> InnerPicUrls { get; set; }
public ContentData(){
InnerPicUrls = new List<string>(); } } #region NewsObject public class NewsObject
{
public int count { get; set; }
public int return_count { get; set; }
public string query_id { get; set; }
public int has_more { get; set; }
public string request_id { get; set; }
public string search_id { get; set; }
public long cur_ts { get; set; }
public int offset { get; set; }
public string message { get; set; }
public string pd { get; set; }
public int show_tabs { get; set; }
public string keyword { get; set; }
public string city { get; set; }
public string[] tokens { get; set; }
public Datum[] data { get; set; }
public int status { get; set; }
} public class Datum
{
public string create_time { get; set; }
public string open_url { get; set; } public string source_url { get; set; } } #endregion }

  

get Toutiao.com news list的更多相关文章

  1. 实操代码研究各种Java技术-java.toutiao.im

    whatsmars https://github.com/javahongxi/whatsmars whatsmars-earth-web springmvc+velocitywhatsmars-ea ...

  2. TouTiao开源项目 分析笔记18 视频详情页面

    1.效果预览 1.1.需要做到的真实效果 1.2.触发的点击事件 在MediaArticleVideoViewBinder的每一个item点击事件中: VideoContentActivity.lau ...

  3. TouTiao开源项目 分析笔记17 新闻媒体专栏

    1.效果预览 1.1.要实现的效果 1.2.如何调转到新闻媒体专栏 点击右上角的用户图标. 在新闻详情页面的Fragment的菜单点击事件中触发. case R.id.action_open_medi ...

  4. TouTiao开源项目 分析笔记16 新闻评论

    1.要达到的效果 1.1.主要效果图 点击了标题栏的消息图标后,然后会跳转到评论详情的页面. 1.2.触发的点击事件 在新闻详情的片段中的菜单点击事件中 设置上方标题栏的消息标的监听事件 case R ...

  5. TouTiao开源项目 分析笔记15 新闻详情之两种类型的实现

    1.预览效果 1.1.首先看一下需要实现的效果. 第一种,文字类型新闻. 第二种,图片类型新闻. 1.2.在NewsArticleTextViewBinder中设置了点击事件 RxView.click ...

  6. TouTiao开源项目 分析笔记14 段子评论

    1.段子页面详情 1.1.先看看预览界面吧 左边的页面已经实现了,现在的目的就是要实现点击左侧的每一个item 然后跳转到右边相应的段子详情页面. 1.2.首先肯定有右侧这个活动==>JokeC ...

  7. TouTiao开源项目 分析笔记13 最后一个订阅号的实现主页面

    1.实现订阅号的基础类 1.1.本地订阅号的Bean类==>MediaChannelBean public class MediaChannelBean implements Parcelabl ...

  8. TouTiao开源项目 分析笔记12 从总体到局部 构建视频主页面

    1.构建视频主列表的整体碎片VideoTabLayout 1.1.首先创建一个VideoTabLayout package com.jasonjan.headnews.module.video; im ...

  9. TouTiao开源项目 分析笔记11 以总体到局部的思路 构建图片主列表

    1.构建图片主列表的整体片段PhotoTabLayout 1.1.首先创建一个PhotoTabLayout片段 public class PhotoTabLayout extends Fragment ...

  10. TouTiao开源项目 分析笔记10 实现通用普通文章片段页面

    1.RxJava的Observable数据操作符总结 1.1.Map操作符 Map操作符对原始Observable发射的没一项数据应用一个你选择的函数, 然后返回一个发射这些结果的Observable ...

随机推荐

  1. AI Undetect是什么?

    标题:AI UNDETECT:超越AI检测的反检测神器 在数字时代,人工智能的飞速发展已经渗透到我们生活的各个领域,包括教育.科技.网络内容制作等.越来越多的人依赖AI来生成各种内容,从学术作业.论文 ...

  2. UniswapV2Pair细节

    UniswapV2Pair合约是Uniswap V2协议中的核心部分,用于管理流动性池.代币交换.流动性代币的铸造和销毁等操作.以下是对UniswapV2Pair合约中所有主要方法及其参数的详细讲解. ...

  3. 一些很好用的SVN功能

    1.checkout 1.1 只checkout部分目录和文件 目的:有时候项目的文件很多,但是只会关心其中的某几个文件,就可以只checkout这几个文件,可以缩短checkout时间且减少其他文件 ...

  4. Reviewbot 开源 | 为什么我们要打造自己的代码审查服务?

    Reviewbot 是七牛云开源的一个项目,旨在提供一个自托管的代码审查服务, 方便做 code review/静态检查, 以及自定义工程规范的落地. 静态检查不是个新鲜事. 我记得早在几年前,我们就 ...

  5. 哪些网站可以申请免费的纯IP地址https证书

    申请免费纯IP地址HTTPS证书,您可以按照以下步骤进行: 一.选择证书颁发机构(CA) 目前,虽然一些大型云服务提供商(如阿里云.华为云.腾讯云等)已经取消了免费一年期SSL证书的供应,但仍有一些C ...

  6. C# 开发的数据采集及云端监控系统

    前言 推荐C#语言开发的堤坝渗透地质数据采集及云端监控系统.希望本文能够为大家提供有价值的信息和参考. 项目介绍 使用数十个 .NET 客户端控制硬件设备进行工作,采集数据并进行处理. 管理人员通过 ...

  7. Vulhub Nginx漏洞复现

    目录 前言 文件名逻辑漏洞(CVE-2013-4547) 配置不当导致解析漏洞 配置错误导致漏洞 CRLF注入漏洞 目录穿越漏洞 前言 Nginx是一款广泛使用的Web服务器和反向代理服务器,尽管它以 ...

  8. OSG开发笔记(三十七):OSG基于windows平台msvc2017x64编译器官方稳定版本OSG3.4.1搭建环境并移植Demo

    前言   自行编译的osg版本插件比较多,如果对版本没有特定要求,但是对环境编译器有特定要求,可以反向融合编译器符合要求的osg版本.   OSG下载过程   osg官网:http://www.osg ...

  9. Shiro简单入门+个人理解

    身为一个刚刚进入开发行业的学生,进入公司就开始了Shiro框架的应用,特此在这里写下收获. Shiro是apache旗下一个开源安全框架,它将软件系统的安全认证相关的功能抽取出来,实现用户身份认证,权 ...

  10. [.NET Blog] .NET Aspire 测试入门

    https://devblogs.microsoft.com/dotnet/getting-started-with-testing-and-dotnet-aspire/ 自动化测试是软件开发的重要一 ...