12月13日

发布时间:2022-06-28 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了12月13日脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

今天做空值的补缺,我的想法是点击表,选择字段,根据字段展示有空值的数据,然后根据电影的名称调用python来获取影的发布时间等信息,我按照这个想法进行去。

这是java调用python,第一次使用很新奇

 public nullBAEn  getpy(){
        nullbaen n=null;
        try {
            System.out.PRintln("start");
            String url="https://movie.douban.COM/subject/25800445/";
            String[] args1=new String[]{"python","E:\pythonchrome\jueceshu\javapy.py",url};
            Process pr=Runtime.getRuntime().exec(args1);

            BufferedReader in = new BufferedReader(new InputStreamReader(pr.getInputStream()));
            String line;
            while ((line = in.readLine()) != null) {
                n=new nullbaen(line,line,line);
            }
            in.close();
            pr.waitFor();
            System.out.println("end");
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println(n.getTITie());
        return n;
    }

将具体的网址传入python,然后python进行爬取信息

From bs4 import BeautifulSoup
import sys
import urllib
import re
import json
import requests
from lxml import etree
headers = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) Applewebkit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"
}


def get_page(url):
    try:
        response = requests.get(url, headers=headers)
        if response.status_code == 200:
            # print('获取网页成功')
            # print(response.encoding)
            return response.text
        else:
            print('获取网页失败')
    except Exception as e:
        print(e)

if __name__ == '__main__':
            # print('java 调用python脚本成功')
            # page=get_page('https://movie.douban.com/subject/25800445/')
            # html = etree.HTML(page)
            # content1 = html.xpath('//span[@proPErty="v:initialReleaseDate"]/text()')
            # print(content1[0])
            for i in range(1, len(sys.argv)):
                url = sys.argv[i]
            page = get_page(url)

            html = etree.HTML(page)
            #print(page)

            content1 = html.xpath('//span[@property="v:runtime"]/text()')
            
            s = re.findall("d+", content1[0])[0]
            print(s)

            #class ="ipc-metadata-list-item__content-container" > < !-- --> < !-- --> < !-- --> < !-- --> < !-- --> < !-- -->1 hour 21 minutes < / div >
            #content1 = html.xpath('.//div[@class="ipc-metadata-list-item__content-container"]/text()')
            #print(content1)
        #  if(content1[0]==""):
        #
        #      content1 = html.xpath('//span[@property="v:runtime"]/text()')
        #  # str=content1[0][0:10]
        #  # print(str)
        # #用正则表达式只取数字
        #  s=re.findall("d+", content1[0])[0]
        #  print(s)

java 会获取到python 本该输出在控制台的值,所以这个print里面的值就会被java获取到,然后根据这个补充的值进行操作。

但是我在最数据爬取的时候遇到很多问题,刚开始我看到有人说有豆瓣api,可以输入名称返回相关结果,结果我搞了将近两个小时发现,这些全部都过期了

然后我就在豆瓣搜索,根据搜索的结果来获取数据,我就这样测试了好久,然后发现一直获取到空值,我以为是我的解析语句有问题,直到我发现我获取到的page也就是html文件里面根本就没有哪个部分数据,连标签都没有,我就懵了,然后去搜说是动态加载的。这个我就完全解析不了了。于是我选择爬取相应的静态页面。

&nbsp;

 

 

学习时间:14:12到22:44

 

脚本宝典总结

以上是脚本宝典为你收集整理的12月13日全部内容,希望文章能够帮你解决12月13日所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。