你所需要的,不仅仅是一个好用的代理。
一.实体的关系
实体是根据返回的Json数据来设计的
教育经历方面
用户可以有很多教育经理,USER和education是一对多的关系,一个education对应一个education
一个用户可以有多个工作,当然很多人可以从事同一份工作,每份工作对应一家公司,对应一个岗位
每个用户可以有多个居住地,同一个居住地有多个用户,每个用户有一个行业,同一个行业有多个用户
代码实现就不列举了,创建一个Model类库项目
二.数据库上下文
public class ZhihuEntity : DbContext { public ZhihuEntity() : base("name=ZhihuEntity") { // Database.SetInitializer<ZhihuEntity>(null); } public DbSet<User> user { get; set; } public DbSet<business> business { get; set; } public DbSet<employments> employments { get; set; } public DbSet<company> company { get; set; } public DbSet<job> job { get; set; } public DbSet<locations> locations { get; set; } public DbSet<educations> educations { get; set; } public DbSet<school> school { get; set; } public DbSet<major> major { get; set; } public DbSet<UserTemp> UserTemp { get; set; } public DbSet<nexturl> nexturl { get; set; } }
Note:nexturl和UserTemp是用来存贮临时数据的
修改好配置文件即可使用了
反爬虫问题
抓取过于频繁,服务器返回429.这个时候需要切换代理IP了,推荐使用阿布云代理,阿布云代理IP,提供高匿代理,爬虫代理.