Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何读取在其他html之后加载的html?_Java_Regex_Bufferedreader - Fatal编程技术网

Java 如何读取在其他html之后加载的html?

Java 如何读取在其他html之后加载的html?,java,regex,bufferedreader,Java,Regex,Bufferedreader,好吧,对不起,这个问题是废话。很难提出一个问题:P 如果你在dictionary.com或任何不规则动词中输入类似于think的单词,那么发音[thawt]会在html的其余部分之后加载 如果你检查我的代码,你就会明白我的意思。它没有[解冻]而是装载[东西] package OEpr; import java.awt.EventQueue; import java.awt.GridLayout; import java.awt.Toolkit; import javax.swing.JFra

好吧,对不起,这个问题是废话。很难提出一个问题:P

如果你在dictionary.com或任何不规则动词中输入类似于think的单词,那么发音[thawt]会在html的其余部分之后加载

如果你检查我的代码,你就会明白我的意思。它没有[解冻]而是装载[东西]

package OEpr;

import java.awt.EventQueue;
import java.awt.GridLayout;
import java.awt.Toolkit;

import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.ClipboardOwner;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.JTextField;

public class OEpr {

    private JFrame frame;
    private JTextField txtWord;
    private JTextField textpron;

    /**
     * Launch the application.
     */

    private static String wordurl;
    private static String line;
    private int linenum;
    private static int findingfirst = 0;
    private static String pron;
    StringSelection testcopy;

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    OEpr window = new OEpr();
                    window.frame.setVisible(true);

                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });

    }

    /**
     * Create the application.
     */
    public OEpr() {
        initialize();

        setvars();

    }

    public void setvars() {
        OEpr.wordurl = "http://dictionary.reference.com/browse/"
                + txtWord.getText();

    }

    public void geturl(String[] args) throws Exception {

        // Set URL

        URL url = new URL(wordurl);
        URLConnection spoof = url.openConnection();
        // Spoof the connection so we look like a web browser
        spoof.setRequestProperty("User-Agent",
                "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0; H010818)");
        BufferedReader in = new BufferedReader(new InputStreamReader(
                spoof.getInputStream()));
        String uline = "";

        // Loop through every line in the source
        while ((uline = in.readLine()) != null) {

            System.out.println(uline);
            line = uline;

            linecheck();
        }
        // System.out.println(OEpr.line);
    }

    private void linecheck() {
        Pattern pattern = Pattern.compile("<!-- google_ad_section_start -->");
        Pattern pattern2 = Pattern.compile("\\[.*?]");
        Matcher matcher = pattern.matcher(OEpr.line);
        if (matcher.find()) {
            findingfirst++;
            // if(findingfirst==2){

            String noHTML = line.replaceAll("\\<.*?>", "");
            Matcher matcher2 = pattern2.matcher(noHTML);
            if (matcher2.find()) {
                pron = noHTML.replaceAll("(^.*(?=\\[))|((?<=\\]).*$)", "");
                // System.out.println(pron);
                textpron.setText(pron);
            }

            // }
            // System.out.println(matcher.group(0)); //prints /{item}/
        } else {
            // System.out.println("Match not found");
        }
    }

    public void setClipboardContents(String aString) {

        testcopy = new StringSelection(pron);

        Toolkit.getDefaultToolkit().getSystemClipboard()
                .setContents(testcopy, null);

    }

    /**
     * Initialize the contents of the frame.
     */
    private void initialize() {
        frame = new JFrame();
        frame.setAlwaysOnTop(true);
        frame.setResizable(false);
        frame.setSize(210, 100);
        JButton btnGo = new JButton("Go!");
        btnGo.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {

                // Execute when button is pressed
                try {
                    setvars();
                    OEpr.findingfirst = 0;
                    geturl(null);
                } catch (Exception e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
            }
        });
        JButton btnCopy = new JButton("Copy!");
        btnCopy.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {

                // Execute when button is pressed
                try {
                    setClipboardContents(null);
                } catch (Exception e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
            }
        });

        txtWord = new JTextField();
        txtWord.setText("thought");
        txtWord.setColumns(10);

        textpron = new JTextField();
        textpron.setColumns(10);
        GroupLayout groupLayout = new GroupLayout(frame.getContentPane());
        groupLayout
                .setHorizontalGroup(groupLayout
                        .createParallelGroup(Alignment.LEADING)
                        .addGroup(
                                Alignment.TRAILING,
                                groupLayout
                                        .createSequentialGroup()
                                        .addGroup(
                                                groupLayout
                                                        .createParallelGroup(
                                                                Alignment.LEADING)
                                                        .addGroup(
                                                                groupLayout
                                                                        .createSequentialGroup()
                                                                        .addContainerGap(
                                                                                GroupLayout.DEFAULT_SIZE,
                                                                                Short.MAX_VALUE)
                                                                        .addComponent(
                                                                                txtWord,
                                                                                GroupLayout.PREFERRED_SIZE,
                                                                                GroupLayout.DEFAULT_SIZE,
                                                                                GroupLayout.PREFERRED_SIZE)
                                                                        .addPreferredGap(
                                                                                ComponentPlacement.RELATED))
                                                        .addGroup(
                                                                groupLayout
                                                                        .createSequentialGroup()
                                                                        .addContainerGap()
                                                                        .addComponent(
                                                                                textpron,
                                                                                GroupLayout.PREFERRED_SIZE,
                                                                                GroupLayout.DEFAULT_SIZE,
                                                                                GroupLayout.PREFERRED_SIZE)
                                                                        .addPreferredGap(
                                                                                ComponentPlacement.RELATED)))
                                        .addGroup(
                                                groupLayout
                                                        .createParallelGroup(
                                                                Alignment.LEADING)
                                                        .addComponent(btnGo)
                                                        .addComponent(btnCopy))
                                        .addContainerGap()));
        groupLayout
                .setVerticalGroup(groupLayout
                        .createParallelGroup(Alignment.LEADING)
                        .addGroup(
                                groupLayout
                                        .createSequentialGroup()
                                        .addContainerGap()
                                        .addGroup(
                                                groupLayout
                                                        .createParallelGroup(
                                                                Alignment.BASELINE)
                                                        .addComponent(btnGo)
                                                        .addComponent(
                                                                txtWord,
                                                                GroupLayout.PREFERRED_SIZE,
                                                                GroupLayout.DEFAULT_SIZE,
                                                                GroupLayout.PREFERRED_SIZE))
                                        .addPreferredGap(
                                                ComponentPlacement.RELATED)
                                        .addGroup(
                                                groupLayout
                                                        .createParallelGroup(
                                                                Alignment.BASELINE)
                                                        .addComponent(btnCopy)
                                                        .addComponent(
                                                                textpron,
                                                                GroupLayout.PREFERRED_SIZE,
                                                                GroupLayout.DEFAULT_SIZE,
                                                                GroupLayout.PREFERRED_SIZE))
                                        .addContainerGap(
                                                GroupLayout.DEFAULT_SIZE,
                                                Short.MAX_VALUE)));
        frame.getContentPane().setLayout(groupLayout);
    }
}
包装OEpr;
导入java.awt.EventQueue;
导入java.awt.GridLayout;
导入java.awt.Toolkit;
导入javax.swing.JFrame;
导入javax.swing.JButton;
导入java.awt.GridBagLayout;
导入java.awt.GridBagConstraints;
导入java.awt.datatransfer.Clipboard;
导入java.awt.datatransfer.ClipboardOwner;
导入java.awt.datatransfer.StringSelection;
导入java.awt.datatransfer.transfer;
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
导入java.io.BufferedReader;
导入java.io.InputStreamReader;
导入java.net.URL;
导入java.net.URLConnection;
导入java.util.regex.Matcher;
导入java.util.regex.Pattern;
导入javax.swing.GroupLayout;
导入javax.swing.GroupLayout.Alignment;
导入javax.swing.LayoutStyle.ComponentPlacement;
导入javax.swing.JTextField;
公共级OEpr{
私有JFrame;
私有JTextField-txtWord;
私有JTextField textpron;
/**
*启动应用程序。
*/
私有静态字符串wordurl;
专用静态字符串线;
私有int-linenum;
私有静态int findingfirst=0;
私有静态字符串pron;
选择测试拷贝;
公共静态void main(字符串[]args){
invokeLater(新的Runnable(){
公开募捐{
试一试{
OEpr窗口=新OEpr();
window.frame.setVisible(true);
}捕获(例外e){
e、 printStackTrace();
}
}
});
}
/**
*创建应用程序。
*/
公共OEpr(){
初始化();
setvars();
}
公共void setvars(){
OEpr.wordurl=”http://dictionary.reference.com/browse/"
+getText();
}
public void geturl(字符串[]args)引发异常{
//设置URL
URL=新URL(wordurl);
URLConnection spoof=url.openConnection();
//欺骗连接,使我们看起来像一个网络浏览器
spoof.setRequestProperty(“用户代理”,
“Mozilla/4.0(兼容;MSIE 5.5;Windows NT 5.0;H010818)”;
BufferedReader in=新的BufferedReader(新的InputStreamReader(
spoof.getInputStream());
字符串uline=“”;
//循环源中的每一行
而((uline=in.readLine())!=null){
系统输出println(uline);
直线=乌司他林;
linecheck();
}
//系统输出打印LN(OEpr线);
}
私有void linecheck(){
Pattern=Pattern.compile(“”);
Pattern pattern2=Pattern.compile(“\\[.*?]”);
匹配器匹配器=模式匹配器(OEpr.line);
if(matcher.find()){
findingfirst++;
//如果(findingfirst==2){
字符串noHTML=line.replaceAll(“\\”,“”);
Matcher matcher2=pattern2.Matcher(noHTML);
if(matcher2.find()){

pron=noHTML.replaceAll((^.*(=\\[))|((?我想你是在问。如果我理解你的意思,页面加载了,它说了某件事,然后它执行ajax脚本并更改其中的文本。但是当你加载它时,你没有运行ajax脚本,因此你无法获得它。你需要知道他们运行的脚本是什么,以及他们将它发送到哪里(操作)。一旦这样做,您就可以将相同的内容发送到服务器并获得您正在寻找的响应。它将返回Json或html文本,然后您需要在同一位置进行替换。如果是这样,请在脚本文件中查找与替换的相同id相匹配的内容