python爬虫简单实现,并在java中调用python脚本,将数据保存在json文件中
# coding:utf-8 import urllib2
from bs4 import BeautifulSoup
import json
import sys reload(sys) sys.setdefaultencoding('utf-8')
class dataBean(object) : def __init__(self, title, url,date):
self.date = date
self.url = url
self.title = title
def obj_2_json(obj):
return {
"title":obj.title,
"url":obj.url,
"date":obj.date
}
url = "http://localhost:8088/news.html"
response3 = urllib2.urlopen(url)
soup = BeautifulSoup(response3.read(), 'html.parser', from_encoding='utf-8')
links = soup.find_all('a',class_='')
data=[]
contents = soup.find('ul', class_="w_newslistpage_list").findAll("li") for content in contents:
bean = dataBean(content.find("span").find("a").get_text(), content.find("span").find("a")['href'],
content.find('span', class_="date").get_text())
data.append(dataBean(content.find("span").find("a").get_text(), content.find("span").find("a")['href'],
content.find('span', class_="date").get_text())) jsondata= json.dumps(data,default=dataBean.obj_2_json, ensure_ascii=False,encoding='utf-8')
fileObject = open('data.json', 'w')
fileObject.write(jsondata)
fileObject.close()
print jsondata
java中调用,借助jython.jar,并将bs4文件拷贝在当前文件夹下即可
import org.python.core.Py;
import org.python.core.PyString;
import org.python.util.PythonInterpreter; public class Main {
//jython安装
public static void main(String[] args) {
String code = "# -*- coding: utf-8 -*-\n" +
"import sys\n" +
"reload(sys)\n" + "import urllib2\n" +
"sys.setdefaultencoding('utf-8')\n" +
"import json\n";
new Thread(new Runnable() {
@Override
public void run() {
PythonInterpreter interpreter = new PythonInterpreter();
interpreter.exec("from bs4 import BeautifulSoup");
PyString code2 = Py.newStringUTF8(code);
interpreter.exec(code2);
interpreter.execfile("D:\\java\\test\\src\\GetNewsDataToLocal.py"); }
}
).start();
} }
可在当前文件夹看到json文件
python爬虫简单实现,并在java中调用python脚本,将数据保存在json文件中的更多相关文章
- 第三天,爬取伯乐在线文章代码,编写items.py,保存数据到本地json文件中
一. 爬取http://blog.jobbole.com/all-posts/中的所有文章 1. 编写jobbole.py简单代码 import scrapy from scrapy. ...
- 直接把数据库中的数据保存在CSV文件中
今天突然去聊就来写一个小小的demo喽,嘿嘿 public partial class Form1 : Form { public Form1() { InitializeComponent(); } ...
- 使用scrapy爬取的数据保存到CSV文件中,不使用命令
pipelines.py文件中 import codecs import csv # 保存到CSV文件中 class CsvPipeline(object): def __init__(self): ...
- 使用jsp读取某个目录下的所有文件名,并保存在json文件中
<%@page import="java.io.File"%> <%@page import="java.io.FileWriter"%> ...
- Sql数据保存到Excel文件中
public string ExportExcel( DataSet ds,string saveFileName) { try { if (ds == null) return "数据库为 ...
- c# 将datatable中的数据保存到excel文件中
using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Lin ...
- 如何在Java中调用Python代码
有时候,我们会碰到这样的问题:与A同学合作写代码,A同学只会写Python,而不会Java, 而你只会写Java并不擅长Python,并且发现难以用Java来重写对方的代码,这时,就不得不想方设法“调 ...
- 在Java中调用Python
写在前面 在微服务架构大行其道的今天,对于将程序进行嵌套调用的做法其实并不可取,甚至显得有些愚蠢.当然,之所以要面对这个问题,或许是因为一些历史原因,或者仅仅是为了简单.恰好我在项目中就遇到了这个问题 ...
- 在Java中调用Python代码
极少数时候,我们会碰到类似这样的问题:与A同学合作写代码, A同学只会写Python,不熟悉Java ,而你只会写Java不擅长Python,并且发现难以用Java来重写对方的代码,这时,就不得不想方 ...
随机推荐
- 【Hibernate】一级缓存
一.概述 二.证明Hibernate的一级缓存的存在 三.一级缓存中快照区 四.管理一级缓存 五.Hibernate一级缓存的刷出时机 六.操作持久化对象的方法 一.概述 什么是缓存: 缓存将数据库/ ...
- 牛客练习赛48 A· 小w的a+b问题 (贪心,构造,二进制)
牛客练习赛48 A· 小w的a+b问题 链接:https://ac.nowcoder.com/acm/contest/923/A来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C ...
- python画图matplolib
http://python.jobbole.com/85106/ 1.画二维图 2.画三维图 我的电脑只能在jupyter notebook上面运行才能看的到,常规import库 %matplotli ...
- unittest简单使用的介绍
无论是paython+request接口测试.ui自动化测试等,都常会用到unittest的框架,简单的介绍如下:
- 类似于ORACLE decode 的用法
SQL Server 2008中的写法:select t.PROJECTNAME, t.BUILDCONTENTSCALE, CASE t.PROJECTLEVEL WHEN '0' TH ...
- BZOJ 3925: [Zjoi2015] 地震后的幻想乡(概率DP)
这里有一篇很好很强的博客%%% YouSiki大佬的博客 多理解一会就行了- 代码 #include <bits/stdc++.h> using namespace std; typede ...
- HDU-1160-FatMouse's Speed(DP, 最长递增子序列)
链接: https://vjudge.net/problem/HDU-1160 题意: FatMouse believes that the fatter a mouse is, the faster ...
- 0、Spring 注解驱动开发
0.Spring注解驱动开发 0.1 简介 <Spring注解驱动开发>是一套帮助我们深入了解Spring原理机制的教程: 现今SpringBoot.SpringCloud技术非常火热,作 ...
- C语言学习系列(五)变量和常量
一.常量 定义:在程序运行中,其值不能改变的量称为常量 分类:常量可以是任何的基本数据类型,比如整数常量.浮点常量.字符常量,或字符串字面值,也有枚举常量. 在 C 中,有两种简单的定义常量的方式: ...
- 慕课网SSM仿大众点评
目录: 配置部分: 1 配置报错不支持diamond运算符 运行部分: 1 登录的账号密码 2 运行项目是报错session超时 配置部分 1 配置报错不支持diamond运算符 原报错信息如下:id ...