多线程新浪新闻搜索网络爬虫-基于关键字
来源:互联网 发布:中国外汇储备结构知乎 编辑:程序博客网 时间:2024/06/05 11:25
本文为原创博客,仅供技术学习使用。未经允许,禁止将其复制下来上传到百度文库等平台。如有转载请注明本文博客的地址(链接)
源码获取请联系:1563178220@qq.com
简介
互联网有海量的新闻,如何基于关键字检索相关新闻,并将新闻内容存储到数据库呢,以新浪新闻为例,如下图所示,输入关键字爬取历史新闻,可以看到历史新闻的数量有很多,因此采用单线程的方式,无法满足需求,可采用多线程的方式采集数据。
程序框架
主程序
package main;/** * @author:合肥工业大学 管理学院 钱洋 * @email:1563178220@qq.com * @ *//* * 多线层爬取新闻id,标题,url * */import java.io.IOException;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import org.apache.http.ParseException;import org.apache.http.client.HttpClient;import org.apache.http.impl.client.DefaultHttpClient;import db.MYSQLControl;import model.NewInfo;import utils.URLFecter;import utils.Utils;public class FirstNewsThread extends Thread{ String Starturl = ""; //构造函数,初始化使用 public FirstNewsThread (String Starturl){ this.Starturl = Starturl; } public void run(){ //针对每个url开始爬取 HttpClient client = new DefaultHttpClient(); System.out.println(Starturl); List<NewInfo> newinfo=new ArrayList<NewInfo>(); try { newinfo=URLFecter.htmlFirstGet(client, Starturl); } catch (ParseException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } for (NewInfo info:newinfo) { System.out.println(info.getNewsurl()+"\t"+info.getNewsid()+"\t"+info.getNewstitle()); } MYSQLControl.insertnewsurl_info(newinfo); } public static void main(String[] args) throws SQLException{ //提供你的关键字 String keyword="金融"; //转化成网页字符 String keywordtransform=Utils.toUrlString(keyword,"gbk"); //创建固定大小的线程池 ExecutorService exec = Executors.newFixedThreadPool(5); for (int i = 1; i < 1000; i++) { String starturl="http://search.sina.com.cn/?q="+keywordtransform+"&range=all&c=news&sort=time&col=&source=&from=&country=&size=&time=&a=&" + "page="+i+"&pf=2131425467&ps=2134309112&dpc=1"; //执行线程 exec.execute(new FirstNewsThread(starturl)); } //线程关闭 exec.shutdown(); }}
程序运行结果
数据库结果展示:
阅读全文
0 0
- 多线程新浪新闻搜索网络爬虫-基于关键字
- Python_网络爬虫(新浪新闻抓取)
- Python_网络爬虫(新浪新闻抓取)
- python爬虫——新浪新闻网络爬虫
- 新浪新闻爬虫程序
- Python 编写新浪新闻网络爬虫(学习整理)
- 使用python网络爬虫爬取新浪新闻(一)
- 【python网络编程】新浪爬虫:关键词搜索爬取微博数据
- 基于HttpClient实现网络爬虫~以百度新闻为例
- 基于HttpClient实现网络爬虫~以百度新闻为例
- python爬虫 根据关键字在新浪网站查询跟关键字有关的新闻条数(按照时间查询)
- 网络爬虫框架scrapy介绍及应用——抓取新浪新闻的标题内容评论
- Python爬虫:抓取新浪新闻数据
- ptython3+mysql爬虫抓取新浪新闻
- 第一个python爬虫 抓取新浪新闻
- python爬虫之获取新浪新闻信息
- python3+urllib撸新浪滚动新闻爬虫
- 【网络爬虫】给关键字获取百度知道搜索数据的网络爬虫
- 怎么获取到View的位置View.getLocationInWindow()的为0
- Java基础知识梳理--IO
- tensorflow初学代码系列一(基于莫烦视频)
- 实验5 哈夫曼树
- 引用类型(数组)
- 多线程新浪新闻搜索网络爬虫-基于关键字
- Linux学习6:文件打包与压缩
- LeetCode刷题(45)--Remove Duplicates from Sorted List
- Linux下配置jdk
- 第一天
- Codeforces Round #447
- Win10系统强制禁用驱动程序签名
- CV牛人网址
- OGNL表达式与EL表达式区别