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文件

原文地址:https://www.cnblogs.com/loaderman/p/10137082.html

时间: 2024-10-27 12:05:17

python爬虫简单实现,并在java中调用python脚本,将数据保存在json文件中的相关文章

直接把数据库中的数据保存在CSV文件中

今天突然去聊就来写一个小小的demo喽,嘿嘿 public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { SaveFileDialog saveFileDialog1 = new SaveFileDialog(); saveFileDialog1.Filter = "CSV文件|*.CSV

Sql数据保存到Excel文件中

public string ExportExcel( DataSet ds,string saveFileName) { try { if (ds == null) return "数据库为空"; bool fileSaved = false; Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); if (xlApp == null) {

如何在Java中调用Python代码

有时候,我们会碰到这样的问题:与A同学合作写代码,A同学只会写Python,而不会Java, 而你只会写Java并不擅长Python,并且发现难以用Java来重写对方的代码,这时,就不得不想方设法“调用对方的代码”. 下面我将举一些简单的小例子,借此说明:如何在Java中调用Python代码. 看懂这篇文章只需要具备: 熟悉Java的基本语法 懂一点点Python 主要内容如下: 什么是Jython? 一个HelloPython程序 在Jvm中执行Python脚本 仅在Java中调用Python

使用Runtime.getRuntime().exec()在java中调用python脚本

举例有一个Python脚本叫test.py,现在想要在Java里调用这个脚本.假定这个test.py里面使用了拓展的包,使得pythoninterpreter之类内嵌的编译器无法使用,那么只能采用java调用控制台进程,即 Runtime.getRuntime().exec(),来运行这个python脚本. 在windows下运行这个程序,假如是参考了一些百度来的被转载了无数遍的文章,很有可能运行结果是根本没有执行这个脚本.经过测试,在java中执行如下代码可以成功运行test.py文件: --

《Java虚拟机原理图解》1.4 class文件中的字段表集合--field字段在class文件中是怎样组织的

0.前言 了解JVM虚拟机原理是每一个Java程序员修炼的必经之路.但是由于JVM虚拟机中有很多的东西讲述的比较宽泛,在当前接触到的关于JVM虚拟机原理的教程或者博客中,绝大部分都是充斥的文字性的描述,很难给人以形象化的认知,看完之后感觉还是稀里糊涂的. 感于以上的种种,我打算把我在学习JVM虚拟机的过程中学到的东西,结合自己的理解,总结成<Java虚拟机原理图解> 这个系列,以图解的形式,将抽象的JVM虚拟机的知识具体化,希望能够对想了解Java虚拟机原理的的Java程序员 提供点帮助. 读

c#中调用python

1. 安装IronPython,到http://ironpython.codeplex.com/下载安装包 2. 创建项目 创建一个C#的控制台应用程序. 添加引用: 浏览到IronPython的安装目录中,添加对IronPython.dll,Microsoft.Scripting.dll 两个dll的引用. 3. 添加Python文件到当前的项目中 创建一个文本文件命名为:hello.py, 编辑如下 def welcome(name):    return "hello" + na

python爬虫----(6. scrapy框架,抓取亚马逊数据)

利用xpath()分析抓取数据还是比较简单的,只是网址的跳转和递归等比较麻烦.耽误了好久,还是豆瓣好呀,URL那么的规范.唉,亚马逊URL乱七八糟的.... 可能对url理解还不够. amazon ├── amazon │   ├── __init__.py │   ├── __init__.pyc │   ├── items.py │   ├── items.pyc │   ├── msic │   │   ├── __init__.py │   │   └── pad_urls.py │  

《Java虚拟机原理图解》1.5、 class文件中的方法表集合--method方法在class文件中是怎样组织的

0. 前言 了解JVM虚拟机原理是每一个Java程序员修炼的必经之路.但是由于JVM虚拟机中有很多的东西讲述的比较宽泛,在当前接触到的关于JVM虚拟机原理的教程或者博客中,绝大部分都是充斥的文字性的描述,很难给人以形象化的认知,看完之后感觉还是稀里糊涂的. 感于以上的种种,我打算把我在学习JVM虚拟机的过程中学到的东西,结合自己的理解,总结成<Java虚拟机原理图解> 这个系列,以图解的形式,将抽象的JVM虚拟机的知识具体化,希望能够对想了解Java虚拟机原理的的Java程序员 提供点帮助.

Windows平台下如何在C#中调用Python

最近迷上了Python,发现它能够做很多C#无法完成的事情,比如,调用CMD或者在CMD中执行一个exe文件命令行并获得输出的结果.过程简单,处理起来也非常方便,但如果要用C#调用Python文件呢,没关系,你想到的肯定早就有也人想到过.网上Google一下,超级多.索性拿来实践吧. 首先要用到的就是这个软件:IronPython,官方下载地址:http://ironpython.codeplex.com 安装在Windows下之后去它的安装地址查找下面这两个文件: IronPython.dll