多线程新浪新闻搜索网络爬虫-基于关键字
本文为原创博客,仅供技术学习使用。未经允许,禁止将其复制下来上传到百度文库等平台。如有转载请注明本文博客的地址(链接)
源码获取请联系: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();}
}
程序运行结果
数据库结果展示:
多线程新浪新闻搜索网络爬虫-基于关键字相关推荐
- 从入门到入土:Python爬虫学习|实例练手|爬取新浪新闻搜索指定内容|Xpath定位标签爬取|代码注释详解
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
- python爬取新浪新闻首页_Python爬虫学习:微信、知乎、新浪等主流网站的模拟登陆爬取方法...
微信.知乎.新浪等主流网站的模拟登陆爬取方法 摘要:微信.知乎.新浪等主流网站的模拟登陆爬取方法. 网络上有形形色色的网站,不同类型的网站爬虫策略不同,难易程度也不一样.从是否需要登陆这方面来说,一些 ...
- Python网络爬虫爬取新浪新闻
笔者最近由于需要研究互联网新闻,于是基于邱老师的网络爬虫实战,写了一个爬取新浪新闻的爬虫,爬取的信息有: 新闻标题 来源url 发布时间 正文 编辑者 与邱老师的爬虫相比有以下几点不同: 没有爬取新闻 ...
- 使用python网络爬虫爬取新浪新闻(一)
使用python网络爬虫爬取新浪新闻 第一次写博客,感觉有点不太习惯!不知道怎么突然就想学学爬虫了,然后就用了一天的时间,跟着教程写了这个爬虫,!不说废话了,我将我从教程上学习的东西整个写下来吧,从头 ...
- 网络爬虫-----python爬取新浪新闻
思路:先爬取首页,然后通过正则筛选出所有文章url,然后通过循环分别爬取这些url到本地 #python新闻爬虫实战 import urllib.request import re url = 'ht ...
- 【API爬虫】30分钟百万条新浪新闻信息爬取。python得极速之旅
请参考源码,文字是最先得想法,没有再做更改.源码以更新 前期准备:requests库:使用pip install requests 安装. pymongo库:使用pip install pymongo ...
- Python爬虫爬取新浪新闻内容
首先感谢丘祐玮老师在网易云课堂的Python网络爬虫实战课程,接下来也都是根据课程内容而写.一来算是自己的学习笔记,二来分享给大家参考之用. 课程视频大概是在16年11月录制的,现在是18年2月.其中 ...
- python爬虫scrapy爬取新闻标题及链接_18Python爬虫---CrawlSpider自动爬取新浪新闻网页标题和链接...
一.爬取新浪新闻思路 1.创建scrapy项目 2.分析新浪新闻网站静态页面代码 3.编写对应的xpath公式 4.写代码 二.项目代码 步骤1.创建scrapy项目 scrapy startproj ...
- 19Python爬虫--爬取新浪新闻标题并保存到数据库
一.爬取新浪新闻思路 1.创建scrapy项目 2.分析新浪新闻网站静态页面代码 3.编写对应的xpath公式 4.写代码 二.项目代码 步骤1.创建scrapy项目 创建爬虫文件 scrapy st ...
最新文章
- javascript TODO
- 多线程 java 实例_Java多线程实例学习
- Skywalking部署常见问题以及注意事项
- LeetCode 2177. 找到和为给定整数的三个连续整数
- VS封装给Unity使用的DLL
- 2020年,哪些行业涨工资最多?
- 统赢编程软件_统赢PressCAD线割慢走丝编程软件的线割上下异形编程设定
- 职称计算机 frontpage 2003,职称计算机考试大纲:FrontPage2003网页设计与制作
- 浏览器通过域名查找IP地址的过程
- C++ OpenCV 将黑点框出来
- tomcat中运行PHP项目
- macOS、Shimo下载使用及路由配置
- 高性能两级缓存J2Cache
- spark ui job和stage的dag图查看过去运行的任务,查不到,分析源码解决问题
- ubuntu18.04上使用7z分卷压缩和解压
- (error) MOVED 原因和解决方案
- chrome拓展以及油猴脚本推荐
- IP核的使用之RAM(Vivado)
- OpenCV的下载、安装和配置
- 中国移动首测6G,确保中国在移动通信技术上的领先优势