精华内容
下载资源
问答
  • python怎么抓取网页中DIV的文字
    2020-12-10 13:43:50

    展开全部

    使用62616964757a686964616fe4b893e5b19e31333363393634 BeautifulSoup  进行解析 html,需要安装 BeautifulSoup#coding=utf-8

    import urllib2

    import socket

    import httplib

    from bs4 import BeautifulSoup

    UserAgent = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36'

    def downloadPage(url):

    try:

    opener = urllib2.build_opener()

    headers = { 'User-Agent': UserAgent }

    req = urllib2.Request(url = url, headers = headers)

    resp = opener.open(req, timeout = 30)

    result = resp.read()

    return result

    except urllib2.HTTPError, ex:

    print ex

    return ''

    except urllib2.URLError, ex:

    print ex

    return ''

    except socket.error, ex:

    print ex

    return ''

    except httplib.BadStatusLine, ex:

    print ex

    return ''

    if __name__ == '__main__':

    content = downloadPage("这填douban的地址")

    #print content

    soap = BeautifulSoup(content, 'lxml')

    lst = soap.select('ol.grid_view li')

    for item in lst:

    # 电影详情页链接

    print item.select('div.item > div.pic a')[0].attrs['href']

    # 图片链接

    print item.select('div.item > div.pic a img')[0].attrs['src']

    # 标题

    print item.select('div.item > div.info > div.hd > a > span.title')[0].get_text()

    # 评分

    print item.select('div.item > div.info > div.bd > div.star > span.rating_num')[0].get_text()

    print '-------------------------------------------------------------------------'

    更多相关内容
  • 用Python进行爬取网页文字的代码: #!/usr/bin/python # -*- coding: UTF-8 -*- import requests import re # 下载一个网页 url = 'https://www.biquge.tw/75_75273/3900155.html' # 模拟浏览器发送http请求 ...
  • 网页文字抓取工具是一款用于抓取网页文字的软件,一键获取网页文字,快来下载体验吧。 软件功能 网页禁止复制文字怎么办?通过网页“源代码”获取文字又得手工去掉html代码很麻烦,如何解决?请使用“网页文字抓取...
  • 网页文字提取工具

    2013-04-19 14:53:38
    网页文字图片提取 提取网页拷贝、复制不到的地方的文字
  • 网页抓取文字

    2021-03-23 17:07:36
    } /** * 获取网页编码方式 * @param str * @return */ public static String getCharset(String str) { if (str == "" || str == null) return null; Pattern pattern = Pattern.compile("charset=.*"); Matcher ...

    package com.smilezl.scrapy;

    import java.io.BufferedReader;

    import java.io.IOException;

    import java.io.InputStream;

    import java.io.InputStreamReader;

    import java.io.UnsupportedEncodingException;

    import java.net.HttpURLConnection;

    import java.net.MalformedURLException;

    import java.net.URL;

    import java.sql.Connection;

    import java.sql.DriverManager;

    import java.sql.ResultSet;

    import java.sql.SQLException;

    import java.sql.Statement;

    import java.util.ArrayList;

    import java.util.List;

    import java.util.Timer;

    import java.util.TimerTask;

    import java.util.regex.Matcher;

    import java.util.regex.Pattern;

    import org.apache.commons.httpclient.HttpClient;

    import org.apache.commons.httpclient.HttpStatus;

    import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;

    import org.apache.commons.httpclient.methods.GetMethod;

    import org.apache.log4j.Logger;

    public class ScrapyGet {

    private static MultiThreadedHttpConnectionManager connectionManager = new MultiThreadedHttpConnectionManager();

    private static final Logger log = Logger.getLogger(ScrapyGet.class);

    private static int connectionTimeOut = 15000;

    private static int socketTimeOut = 15000;

    private static int readTimeOut = 20000;

    private static int maxConnectionPerHost = 4;

    private static int maxTotalConnections = 40;

    private static boolean initialed = false;

    private static int minContentLength = 4;

    private static int maxContentLength = 400;

    //定时任务

    public static boolean isRunning = false;

    private static long TIMEDELAY = 10 * 1000;

    public static void SetPara() {

    connectionManager.getParams().setConnectionTimeout(connectionTimeOut);

    connectionManager.getParams().setSoTimeout(socketTimeOut);

    connectionManager.getParams().setDefaultMaxConnectionsPerHost(

    maxConnectionPerHost);

    connectionManager.getParams().setMaxTotalConnections(maxTotalConnections);

    //        connectionManager.get

    initialed = true;

    }

    public static String getResponseByGetMethod(String htmlUrl){

    String charSet = "gbk";

    try {

    System.out.println("抓取链接: " + htmlUrl);

    URL url = new URL(htmlUrl);

    HttpURLConnection connection = (HttpURLConnection) url.openConnection();

    connection.setDoOutput(true);

    String contenttype = connection.getContentType();

    charSet = getCharset(contenttype);

    //System.out.println("charSet=" + charSet);

    if (charSet == null)

    charSet = "gbk";

    } catch (IOException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    return charSet;

    }

    //        return getResponseByGetMethod(url,"UTF-8");

    return getResponseByGetMethod(htmlUrl,charSet);

    }

    /**

    * 获取网页编码方式

    * @param str

    * @return

    */

    public static String getCharset(String str) {

    if (str == "" || str == null)

    return null;

    Pattern pattern = Pattern.compile("charset=.*");

    Matcher matcher = pattern.matcher(str);

    if (matcher.find()) {

    return matcher.group(0).split("charset=")[1];

    }

    return null;

    }

    public static String getResponseByGetMethod(String url,String charSet) {

    HttpClient client = new HttpClient(connectionManager);

    if (!initialed) {

    SetPara();

    }

    GetMethod getMethod = new GetMethod(url);

    getMethod.getParams().setSoTimeout(readTimeOut);

    //        System.out.println("timeout = " + client.getHttpConnectionManager().getParams().getConnectionTimeout());

    StringBuffer contentBuffer = new StringBuffer();

    try {

    int statusCode = client.executeMethod(getMethod);

    if (statusCode == HttpStatus.SC_OK) {

    InputStream in = getMethod.getResponseBodyAsStream();

    BufferedReader reader = new BufferedReader(new InputStreamReader(in,getMethod.getResponseCharSet()));

    String inputLine = null;

    while((inputLine = reader.readLine()) != null){

    contentBuffer.append(inputLine);

    contentBuffer.append("/n");

    }

    in.close();

    return convertStringCode(contentBuffer.toString(),getMethod.getResponseCharSet(),charSet);

    }else{

    log.error(getMethod.getStatusLine());

    }

    } catch (IOException e) {

    //            System.out.println("e.getMessage() = " + e.getMessage());

    log.error( e.getMessage());

    return "";

    }finally {

    getMethod.releaseConnection();

    }

    return "";

    }

    private static String convertStringCode(String source, String srcEncode, String destEncode) {

    if (source != null && !"".equals(source)) {

    try {

    return new String(source.getBytes(srcEncode), destEncode);

    } catch (UnsupportedEncodingException e) {

    e.printStackTrace();

    return "";

    }

    } else {

    return "";

    }

    }

    /**

    * @param content

    */

    public static List parserRegex(String content) {

    String regex="([\u4e00-\u9fa5]+)";

    Matcher matcher = Pattern.compile(regex).matcher(content);

    List list = new ArrayList();

    while(matcher.find() ){

    //System.out.println(matcher.group(0));

    String tmp =matcher.group(0);

    if (tmp.length() >= minContentLength && tmp.length() <= maxContentLength)

    list.add(matcher.group(0));

    }

    return list;

    }

    /**

    * @param list

    */

    public static void saveScrapyContent(List list, UrlModel model) {

    try {

    Class.forName("org.postgresql.Driver").newInstance();

    String url = "jdbc:postgresql://localhost:5432/mydb?useUnicode=true&";

    Connection con = DriverManager.getConnection(url, "postgres", "password");

    Statement st = con.createStatement();

    int seqid = 1;

    String maxSql = "select max(seqid) as m from scrapycontent";

    System.out.println("记录总数" + list.size());

    ResultSet rs = (ResultSet) st.executeQuery(maxSql);

    if (rs.next() && rs.getInt(1) != 0) {

    seqid = rs.getInt(1);

    }

    //更新已经抓取的数据URL

    String setUrlType = "update scrapyurl set type = 1 where url='" + model.getUrl() + "'";

    st.executeUpdate(setUrlType);

    for (int i = 0; i < list.size(); i++) {

    String sql = "insert into scrapycontent(content,seqid,parentseqid) values('" + list.get(i) + "'," + (seqid+i+1) +","+model.getSeqid()+")";

    st.execute(sql);

    }

    rs.close();

    st.close();

    con.close();

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    /**

    * 获取所有网址

    * @return

    */

    public static List queryScrapyUrl() {

    List list = new ArrayList();

    try {

    Class.forName("org.postgresql.Driver").newInstance();

    String url = "jdbc:postgresql://localhost:5432/mydb?useUnicode=true&characterEncoding=gbk";

    Connection con = DriverManager.getConnection(url, "postgres", "password");

    Statement st = con.createStatement();

    String sql = "select url,type,seqid from scrapyurl where type=0 order by url";

    ResultSet rs = (ResultSet) st.executeQuery(sql);

    UrlModel model;

    while (rs.next() ) {

    model = new UrlModel();

    model.setUrl(rs.getString("url"));

    model.setType(rs.getInt("type"));

    model.setSeqid(rs.getInt("seqid"));

    list.add(model);

    //String setUrlType = "update scrapyurl set type = 1 where url='" + rs.getString("url") + "'";

    //st.executeUpdate(setUrlType);

    }

    rs.close();

    st.close();

    con.close();

    } catch (Exception e) {

    e.printStackTrace();

    return list;

    }

    return list;

    }

    public static void parserData(UrlModel model) {

    String content = ScrapyGet.getResponseByGetMethod(model.getUrl());

    //System.out.println(content);

    List list = parserRegex(content);

    saveScrapyContent(list, model);

    }

    public static void parserScrapyUrlData() {

    List list = queryScrapyUrl();

    for (int i = 0; i < list.size(); i++) {

    parserData(list.get(i));

    }

    isRunning = false;

    }

    public static class MyTask extends TimerTask {

    @Override

    public void run() {

    isRunning = true;

    //处理所有数据

    System.out.println("running");

    parserScrapyUrlData();

    }

    }

    private static Timer timer = new Timer();

    public static void timerSchedule() {

    System.out.println("定时开始");

    if (!isRunning) {

    System.out.println("执行任务");

    MyTask task = new ScrapyGet.MyTask();

    timer.schedule(task, TIMEDELAY, 10 * 1000);

    }

    }

    /**

    * 设置序号

    */

    public static void setScrapyNum() {

    try {

    Class.forName("org.postgresql.Driver").newInstance();

    String url = "jdbc:postgresql://localhost:5432/mydb?useUnicode=true&characterEncoding=gbk";

    Connection con = DriverManager.getConnection(url, "postgres", "password");

    Statement st = con.createStatement();

    String sql = "select url from scrapyurl where type=0 order by url";

    ResultSet rs = (ResultSet) st.executeQuery(sql);

    int i=1;

    while (rs.next() ) {

    String setUrlSeqid = "update scrapyurl set seqid=" + i + " where url='" + rs.getString("url") + "'";

    st.executeUpdate(setUrlSeqid);

    i++;

    }

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    public static void main(String args[]) {

    //String url = "http://www.lizhi123.net/gaoxiaoyulu/90632.html";

    //parserData(url);

    //parserScrapyUrlData();

    timerSchedule();

    //setScrapyNum();

    }

    }

    展开全文
  • 一起来看下吧~获取图片:1、当我们浏览这个网站时,会发现,每一个页面的URL都是以网站的域名+page+页数组成,这样我们就可以逐一的访问该网站的网页了。2、当我们看图片列表时,把鼠标放到图片,右击检查,我们...

    想必新老python学习者,对爬虫这一概念并不陌生,在如今大数据时代,很多场景都需要利用爬虫去爬取数据,而这刚好时python领域,如何实现?怎么做?一起来看下吧~

    获取图片:

    1、当我们浏览这个网站时,会发现,每一个页面的URL都是以网站的域名+page+页数组成,这样我们就可以逐一的访问该网站的网页了。

    2、当我们看图片列表时中,把鼠标放到图片,右击检查,我们发现,图片的内容由ul包裹的li组成,箭头所指的地方为每个套图的地址,这样我们就可以进入套图,一个这样的页面包含有24个这样的套图,我们用BeautifulSoup处理。

    3、我们进入套图,鼠标右击,发现该套图图片的最大图片数为第十个span的值,而且每个套图的url同①原理相同为套图的url+第几张图片,最后下载的url由一个class为main-titleDIV组成。提取img标签的src属性即可获得下载链接。

    代码如下:from bs4 import BeautifulSoup

    import requests

    import os

    import re

    base_url='

    header = { 'Referer':'http://www.mzitu.com'}

    for x in range(61,62):

    html_a=requests.get(base_url+str(x),headers=header)

    soup_a=BeautifulSoup(html_a.text,features='lxml')

    pages=soup_a.find('ul',{'id':'pins'}).find_all('a')

    test=re.findall('"href":"(.*?)"',pages)

    print(test)

    b=1

    for y in pages:

    if(b%2!=0):

    html=requests.get(y['href'],headers=header)

    soup_b=BeautifulSoup(html.text,features='lxml')

    pic_max=soup_b.find_all('span')[10].text

    tittle=soup_b.find('h2',{'class':'main-title'}).text

    u=str(tittle).replace(':','').replace('!','').replace('?','').replace(',','').replace(' ','')

    os.makedirs('./img/'+u)

    for i in range(1,int(pic_max)+1):

    href=y['href']+'/'+str(i)

    html2=requests.get(href,headers=header)

    soup2=BeautifulSoup(html2.text,features='lxml')

    pic_url=soup2.find('img',alt=tittle)

    html_name=requests.get(pic_url['src'],headers=header,stream=True)

    file_name=pic_url['src'].split(r'/')[-1]

    with open('./img/'+u+'/'+file_name,'wb') as f:

    for x in html_name.iter_content(chunk_size=32):

    f.write(x)

    b=b+1

    print('ok')

    如需更多python实用知识,点击进入PyThon学习网教学中心。

    展开全文
  • 在日常的学习和工作,很多人都会需要到网上查找一些...今天小编教给大家3种方法,轻松提取网页文字哦。方法一:使用源代码复制很多小伙伴可能不知道怎样找到源代码,很简单,在需要复制文字网页的空白处点击鼠标...

    在日常的学习和工作中,很多人都会需要到网上查找一些资料。当查找到我们需要的资料时,想要复制下来,可是网页上有限制,不允许复制粘贴。这时很多小伙伴就采取手动输入的方式了,如果资料不太多的话,手动输入的方式还可以接受。如果量比较大的话,手动输入就比较费劲了。今天小编教给大家3种方法,轻松提取网页文字哦。

    177353492_1_20191206105059175

    方法一:使用源代码复制

    很多小伙伴可能不知道怎样找到源代码,很简单,在需要复制文字网页的空白处点击鼠标右键,然后再选择【查看源文件】。

    177353492_2_20191206105059331

    进入到源文件后,向下滑动,我们就可以看到需要复制的文字内容了,将对应的文字选取一下,就可以复制啦。

    177353492_3_20191206105059441

    方法二:保存为文本

    虽然网页中有些文字是不允许复制粘贴的,但是我们先将需要的文字内容给选中,然后在选中的文字上面点击鼠标右键,就会弹出一个功能框,我们在该功能框中可以看到复制、保存为文本等。这时点击【复制】一样是不允许的,但是我们可以点击【保存为文本】。

    177353492_4_20191206105059535

    之后会弹出另存为的窗口,将文件名输入一下。这样就可以将需要的文字资料给复制出来了。

    177353492_5_20191206105059691

    方法三:使用电脑工具进行截图识别

    以上的两种方法是在网页中进行的操作,其实我们可以使用办公工具以截图识别的方法提取网页文字。如使用【迅捷OCR文字识别软件】的截图识别功能。

    177353492_6_20191206105059831

    打开该工具之后,在文字识别的功能中找到【截图识别】的功能。进入到截图识别的功能页面后,我们可以看到该功能的截图方式。在键盘上点击一下【Alt+F】的快捷键,然后就会跳转到需要复制文字资料的网页,将需要的文字部分给截取下来。回到该功能的页面后,点击【开始识别】就搞定了。

    177353492_7_20191206105059925

    好了,今天的分享就到这里啦!以上的三种方法大家学会了吗?希望对大家有所帮助哦。

    展开全文
  • 提取网页html中文

    2021-05-14 21:43:04
    打开一篇网页文章: ... 进入网页页面按下键盘f12,即可查看网页源码 ... 将鼠标移动到1处将会发现2处有一层灰色笼罩在...接着按照网页中文字内容 在记事本查找 此段文字就是我们想要的内容啦,其他的内容是按照这种方
  • 屏幕文字识别抓取软件,可选择屏幕区域上的地方抓取相应文字,简单易用,功能强大,支持多种类型的屏幕内容进行文字的识别抓取
  • 网页文字抓取

    2014-03-03 00:40:52
    可以抓取网络上的文字,直接把软件的按钮拖到网页上,内容就被抓取到剪切板了。
  • 网页文字抓取工具...

    2022-02-23 09:55:55
    网页文字抓取工具
  • 我用python使用'requests'和'beautifulSoup'API编写了一个代码,以从google返回的前100个站点中抓取文本数据。好吧,它在大多数站点上都很好用,但是在稍后响应或根本不响应的站点上却给出了错误我收到此错误引发...
  • 网页文字抓取工具.exe

    2021-11-30 20:58:46
    有的网页文字无法复制,使用本工具就能实现复制了。
  • 怎么用python爬取网页文字

    千次阅读 2020-12-30 13:16:33
    用Python进行爬取网页文字的代码:#!/usr/bin/python#-*-coding:UTF-8-*-importrequestsimportre#下载一个网页url='https://www.biquge.tw/75_75273/3900155.html'#模拟浏览器发送http请求response=requests.get(url...
  • html网页内容抓取

    2019-03-26 01:03:34
    NULL 博文链接:https://haroldxie.iteye.com/blog/1133877
  • 怎样用Python提取图片文字

    千次阅读 2020-11-20 20:54:00
    点击蓝关注△ 回复“1024”领取福利大礼包有时候在爬取数据的时候,需要读取网页中图片的信息。在读取和处理图像、图像相关的机器学习以及创建图像等任务,Python一直都是非常出色的语言。有两个库非常流行的...
  • 主要介绍了python基于BeautifulSoup实现抓取网页指定内容的方法,涉及Python使用BeautifulSoup模块解析html网页的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • 提取网页中文字内容

    千次阅读 2019-01-28 14:56:29
    &amp;lt;!DOCTYPE html&amp;gt; &amp;lt;html&amp;gt; &amp;lt;head&amp;gt; &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt; &amp;lt;...am
  • //在需要用户检测的网页里需要增加下面两行 //curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); //curl_setopt($ch, CURLOPT_USERPWD, US_NAME.":".US_PWD); $contents = curl_exec($ch); curl_close($ch); echo...
  • 提取网页源码所有的文字 原文写的非常详细,我选择性复制了我目前需要的部分,大家可以看原文 ———————————————— 版权声明:本文为CSDN博主「小缘喵~」的原创文章,遵循CC 4.0 BY-SA版权协议,转载...
  • 内存抓取速度快
  • 解压后不用安装,双击exe文件即可运行,亲测可以提取到图片文字网页中不能复制的文字,准确率99%
  • 网页文本提取

    热门讨论 2012-11-12 21:58:39
    批量提取HTML/DOC/RTF/TXT等文件的... 提取文件全部email邮件地址 提取文件全部互联网址(无参数) 提取文件全部互联网址(带参数) 提取HTML文件body的文本内容 提取HTML文件title与body的文本内容
  • 这是由delphi xe10.1写的,里面都是中文变量,应该很容易看懂 我也是新手,在网上试着教程做,终于看懂了,于是自己简化和修改,让新的菜鸟们更容易上手理解。...内附程序演示以及源码分享,还有原始网页信息看代码
  • Python抓取中文网页

    2021-01-11 21:41:08
    早就有想法把博客每天的访问流量记下来,刚好现在申请了GAE的应用,又开始学Python,正好拿这个练...OK,开始~首先是简单的网页抓取程序:[python] view plaincopy import sys, urllib2fd = urllib2.urlopen(req)w...
  • pElementCol;CComPtrpLoct;// TODO: Add your control notification handler code hereint n = m_LinksList.GetItemCount();//GetCount();for (int i = 0; i < n; i ++){IWebBrowser2 *pBrowser = (IWebBrowser2 ...
  • php只抓取网页文字内容,并过滤其标签,说干就干,开始! <?php function curl_request ( $url , $post = '' , $cookie = '' , $returnCookie = 0 ) { $ua = $ua==''?$_SERVER ['HTTP_USER_AGENT']:'Mozilla/...
  • '********************************************...'作用:提取网页中的内容 '参数:content----要提取的内容,length----从开头数要提取的字符数 '返回值:提取的内容 '***************************************...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 110,512
精华内容 44,204
关键字:

怎样提取网页中的文字