精华内容
下载资源
问答
  • 更新:2018.3.29 问题 CSDN博客文章设置为新版皮肤(“大白”),保存网页到本地后。打开离线保存的网页,会出现页面显示不全的问题。...2.然后,再使用Chrome菜单-"网页另存为"功能,把网页保存到本地 3...

    更新:2018.3.29

     

    问题

    CSDN博客文章设置为新版皮肤(“大白”),保存网页到本地后。打开离线保存的网页,会出现页面显示不全的问题。(或者,点击“展开阅读全文”按钮后,无法展开被折叠的页面。)

     

    解决

    浏览器:Chrome

     

     

    1.首先,点击博文中“展开阅读全文”按钮

     

     

    2.然后,再使用Chrome菜单-"网页另存为"功能,把网页保存到本地

    3.删除"网页附带的同名文件夹“中,文件名为"main-5faf001f61.js.下载"(文件名可能会改变)的文件。

    所有后缀为“.js.下载"的文件。

     

    或者在该文件夹下,执行下面的批处理(保存为.bat)。

    ::清理.js文件
    del *.js.下载

     

    展开全文
  • 爬虫的操作步骤: 爬虫三步走 爬虫第一步:使用requests获得数据:(request库需要...2.使用requests.get获取网页源码 import requests r = requests.get('https://book.douban.com/subject/1084336/com...

     爬虫的操作步骤:

     

    爬虫三步走

    • 爬虫第一步:使用requests获得数据: (request库需要提前安装,通过pip方式,参考之前的博文
      1.导入requests
      2.使用requests.get获取网页源码
    • import requests
      r = requests.get('https://book.douban.com/subject/1084336/comments/').text
      

        

        

    • 爬虫第二步:使用BeautifulSoup4解析数据: BeautifulSoup4库需要提前安装,通过pip方式,参考之前的博文
      1.导入bs4
      2.解析网页数据
      3.寻找数据
      4.for循环打印
    from bs4 import BeautifulSoup
    soup = BeautifulSoup(r,'lxml')
    pattern = soup.find_all('p','comment-content')
    for item in pattern:
    print(item.string)
    

      

    • 爬虫第三步:使用pandas保存数据: pandas库需要提前安装,通过pip方式,参考之前的博文
      1.导入pandas
      2.新建list对象
      3.使用to_csv写入
    import pandas
    comments = []
    for item in pattern:
    comments.append(item.string)
    df = pandas.DataFrame(comments)
    df.to_csv('comments.csv')
    

       

    完整的爬虫(值得注意的是关于BeautifulSoup和pandas两个包,都需要事先在电脑上安装,可以使用pip命令方式安装,具体方法可查看之前的博文命令 pip install beautifulsoup    &  pip install pandas)

    import requests
    r = requests.get('https://book.douban.com/subject/1084336/comments/').text
     
    from bs4 import BeautifulSoup
    soup = BeautifulSoup(r,'lxml')
    pattern = soup.find_all('p','comment-content')
    for item in pattern:
    print(item.string)
     
    import pandas
    comments = []
    for item in pattern:
    comments.append(item.string)
    df = pandas.DataFrame(comments)
    df.to_csv('comments.csv')#当然这里可以指定文件路径,如 D:/PythonWorkSpace/TestData/comments.csv
    

    代码运行结果:(注意的是,运行结果为csv,可能你用Excel打开之后会出现乱码,那是因为csv格式不对,怎么解决呢?

    你可以将csv文件用Notepad++打开,编码Encoding选择 Encode in UTF-8-BOM

     

    Alt text

    如果是多页的话,为了防止保存到CSV 文件中的数据被上一页覆盖,可以这样用:

    mode='a', header = False
    df.to_csv('D:/Python....csv', mode='a', header = False)
    

      

      

    转载于:https://www.cnblogs.com/PeterZhang1520389703/p/8177550.html

    展开全文
  • 其实和爬取普通数据本质一样,不过我们直接爬取数据会直接...这就是通过网页访问的该网站的该图片,于是我们可以直接利用requests模块,进行这个图片的请求,于是这个网站便会返回给我们该图片的数据,我们再数据写

    其实和爬取普通数据本质一样,不过我们直接爬取数据会直接返回,爬取图片需要处理成二进制数据保存成图片格式(.jpg,.png等)的数据文本。

    现在贴一个url=https://img.ivsky.com/img/tupian/t/201008/05/bianxingjingang-001.jpg
    请复制上面的url直接在某个浏览器打开,你会看到如下内容:
    在这里插入图片描述
    这就是通过网页访问到的该网站的该图片,于是我们可以直接利用requests模块,进行这个图片的请求,于是这个网站便会返回给我们该图片的数据,我们再把数据写入本地文件就行,比较简单。

    import requests
    headers={
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3861.400 QQBrowser/10.7.4313.400'}
    url='https://img.ivsky.com/img/tupian/t/201008/05/bianxingjingang-001.jpg'
    re=requests.get(url,headers=headers)
    print(re.status_code)#查看请求状态,返回200说明正常
    path='test.jpg'#文件储存地址
    with open(path, 'wb') as f:#把图片数据写入本地,wb表示二进制储存
                for chunk in re.iter_content(chunk_size=128):
                    f.write(chunk)
    
    

    然后得到test.jpg图片,如下
    在这里插入图片描述
    点击打开查看如下:
    在这里插入图片描述便是下载成功辣,很简单吧。

    现在分析下批量下载,我们将上面的代码打包成一个函数,于是针对每张图片,单独一个名字,单独一个图片文件请求,于是有如下代码:

    import requests
    def get_pictures(url,path):
        headers={
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3861.400 QQBrowser/10.7.4313.400'} 
        re=requests.get(url,headers=headers)
        print(re.status_code)#查看请求状态,返回200说明正常
        with open(path, 'wb') as f:#把图片数据写入本地,wb表示二进制储存
                    for chunk in re.iter_content(chunk_size=128):
                        f.write(chunk)
    url='https://img.ivsky.com/img/tupian/t/201008/05/bianxingjingang-001.jpg'
    path='test.jpg'#文件储存地址
    get_pictures(url,path)
    

    现在要实现批量下载图片,也就是批量获得图片的url,那么我们就得分析网页的代码结构,打开原始网站https://www.ivsky.com/tupian/bianxingjingang_v622/,会看到如下的图片:
    在这里插入图片描述
    于是我们需要分别得到该页面中显示的所有图片的url,于是我们再次用requests模块返回当前该页面的内容,如下:

    import requests
    headers={
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3861.400 QQBrowser/10.7.4313.400'}
    url='https://www.ivsky.com/tupian/bianxingjingang_v622/'
    re=requests.get(url,headers=headers)
    print(re.text)
    
    

    运行会返回当前该页面的网页结构内容,于是我们找到和图片相关的也就是.jpg或者.png等图片格式的字条,如下:
    在这里插入图片描述
    上面圈出来的**//img.ivsky.com/img/tupian/t/201008/05/bianxingjingang-017.jpg**便是我们的图片url,不过还需要前面加上https:,于是完成的url就是https://img.ivsky.com/img/tupian/t/201008/05/bianxingjingang-017.jpg。

    我们知道了这个结构,现在就是把这个提取出来,写个简单的解析式:

    import requests
    headers={
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3861.400 QQBrowser/10.7.4313.400'}
    url='https://www.ivsky.com/tupian/bianxingjingang_v622/'
    re=requests.get(url,headers=headers)
    def get_pictures_urls(text):
        st='img src="'
        m=len(st)
        i=0
        n=len(text)
        urls=[]#储存url
        while i<n:
            if text[i:i+m]==st:
                url=''
                for j in range(i+m,n):
                    if text[j]=='"':
                        i=j
                        urls.append(url)
                        break
                    url+=text[j]
            i+=1
        return urls
    urls=get_pictures_urls(re.text)
    for url in urls:
        print(url)
    
    

    打印结果如下:
    在这里插入图片描述
    得到了url,现在就直接放入一开始的get_pictures函数中,爬取图片辣。

    import requests
    def get_pictures(url,path):
        headers={
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3861.400 QQBrowser/10.7.4313.400'}
        re=requests.get(url,headers=headers)
        print(re.status_code)#查看请求状态,返回200说明正常
        with open(path, 'wb') as f:#把图片数据写入本地,wb表示二进制储存
                    for chunk in re.iter_content(chunk_size=128):
                        f.write(chunk)
    def get_pictures_urls(text):
        st='img src="'
        m=len(st)
        i=0
        n=len(text)
        urls=[]#储存url
        while i<n:
            if text[i:i+m]==st:
                url=''
                for j in range(i+m,n):
                    if text[j]=='"':
                        i=j
                        urls.append(url)
                        break
                    url+=text[j]
            i+=1
        return urls
    
    headers={
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3861.400 QQBrowser/10.7.4313.400'}
    url='https://www.ivsky.com/tupian/bianxingjingang_v622/'
    re=requests.get(url,headers=headers)
    urls=get_pictures_urls(re.text)#获取当前页面所有图片的url
    for i in range(len(urls)):#批量爬取图片
        url='https:'+urls[i]
        path='变形金刚'+str(i)+'.jpg'
        get_pictures(url,path)
    
    

    结果如下:
    在这里插入图片描述
    然后就完成辣,这里只是简单介绍下批量爬取图片的过程,具体的网站需要具体分析,所以本文尽可能详细的展示了批量爬取图片的过程分析,希望对你的学习有所帮助,如有问题请及时指出,谢谢~

    展开全文
  • * 将数据保存本地文件 */ //不同协议引用不同模块,http https const http = require('http') const fs = require('fs') const cheerio = require('cheerio') //可将一段html 转换成可使用jq的...

    node.js 爬虫 实现爬取网页图片并保存到本地

    没有废话直接看代码

    /**
     * 请求网站数据
     * 将数据保存本地文件
     */
    //不同协议引用不同模块,http https
    const http = require('http')
    const fs = require('fs')
    const cheerio = require('cheerio') //可将一段html 转换成可使用jq的写法(非node内置模块需要npm 安装)
    let url = 'http://www.xiongmaoyouxuan.com' //text/html
    let json = 'http://nodejs.org/dist/index.json'//application/json
    http.get(url,(res)=>{
    //安全判断
    const {statusCode} = res //状态码
    const contentType = res.headers['content-type'] //数据类型
     let err =null
      if(statusCode !==200){
        err = new Error('请求状态错误'+statusCode)
      } else if(!/^text\/html/.test(contentType)) {
        err = new Error('请求类型错误'+contentType)
      }
    if (err){
      console.log(err)
      res.resume()//清空缓存
      return false
    }
    
    
    //数据处理
    
      //数据分段,只要接受到数据就会触发data事件, chunk 每次接受的数据片段
      let rawData = ''
      res.on('data',(chunk)=>{
          // console.log( chunk.toString('utf8'));
          rawData += chunk.toString('utf-8')//使用utf-8的格式转码
         
      })
      //数据流传输完毕
      res.on('end',()=>{
        //将请求的数据保存到本地
          let $ = cheerio.load(rawData)//使用jq的写法
            $('img').each((index,item)=>{
              saveImg($(item).attr('src'),index+'wilteMe.png')
            })
          //保存爬取的网页信息
          fs.writeFile('./xiongmaoyouxuan.html',rawData,(err)=>{
            if(err){
              console.log('保存失败');
            } else {
              console.log('保存成功');
            }
          })
        console.log('数据传输完毕');
    
      })
    }).on('error',(err)=>{
      console.log('请求错误');
    })
    //保存图片到本地
    function saveImg(url,path) {
      console.log(url,path)
        try{
          http.get(url,function (req,res) {
            var imgData = '';
            req.setEncoding('binary');
            req.on('data',function (chunk) {
                imgData += chunk;
            })
            req.on('end',function () {
                fs.writeFile(path,imgData,'binary',function (err) {
                    console.log('保存图片成功'+path)
                })
            })
        })
        }
        catch(err){
    
        }
    
    }
    
    展开全文
  • 保存的.html就和网页右击另存为生成的那个.html是一样的,程序自动保存的.html双击能打开网页是检验标准。 有没有大神提点一下,有代码更好。求大神。
  • 我们可以用Python来将一个网页保存本地的HTML文件,这需要用到urllib库。 比如我们要下载山东大学新闻网的一个页面,该网页如下: 实现代码如下 import urllib.request def getHtml(url): ...
  • JS实现保存当前网页HTML到本地

    千次阅读 2017-08-02 15:37:00
    1.保存本页面 <!DOCTYPE html><...<head> <meta charset="UTF-8">...网页HTML存本地</title> <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script...
  • python 保存网页图片到本地

    千次阅读 2014-12-23 10:24:44
    抓取网页文件内容,保存到内存 @url 欲抓取文件 ,path+filename ''' def get_file(self,url): try: cj=cookielib.LWPCookieJar() opener=urllib2.build_opener(urllib2.HTTPCookieProcessor...
  • python学习—保存网页到本地 html及pdf

    千次阅读 2016-06-14 20:46:07
    python学习—保存网页到本地 html及pdf
  • PHP保存网页HMTL到本地电脑

    千次阅读 2015-04-08 14:42:25
    //文件的类型  header('Content-type: application/html');  //下载显示的名字  header('Content-Disposition: attachment; filename="'.$user['studentname'].'.html"'); exit();
  • 今天在浏览网页时看到一张图片不错,想保存下来,在图片上点击右键》图片另存为,结果试了好多次都没有反应。环境: Windows 7操作系统 Chrome 版本 41.0.2272.76 m (64-bit)原因: 后来发现是这个安全警告框的...
  • 有时候想保存某个网站 的图片到本地,但只是偶尔使用一次,如果用爬虫就太重了,利用charles 方式简单,方便 方式,如何下图。如果保存的数据有问题 ,可以通过手动,或者程序来手动修改文件的名称,就可以了 ....
  • 快速保存完整动态网页到本地(离线使用)
  • var dataUrl = canvas.toDataURL('image/jpeg', 1.0) //image/jpeg 保存文件类型,图片的格式 0-1,表示生成的图片的质量,取值01, $("#images").attr("src", dataUrl); saveFile(dataUrl, 'richer'); ...
  • import refrom urllib.request import Request, urlopen#爬虫基本的三个步骤:1.向页面发送请求, 获取源...保存到数据库class DataParserTool(object):#类中方法cls @classmethod def parser_data(cls, data):dat...
  • 简单爬取网页步骤: 1)分析网页元素 2)使用urllib2打开链接 ---python3是 from urllib import request 3)读取链接文本 4)使用re匹配出期望文本内容并分条存入list 代码: import re from urllib import...
  • 这个地方需要使用的就是python的selenium库,这里有一个博客对于安装讲解的很棒,点这里 注意:如果是之前pycharm已经打开的,切记重新打开一次,否则还是会一直报错(环境变量未更新) 实现Ctrl+S自动化保存...
  • 接着就是打开本地文件,然后保存内容了: fp= open (filepath+filename+ ".txt" , "w" ); fp. write (tool.replace(filetext.__str_ _ ())); 当然还有一部重要的内容,也就是tool。因为网页代码会有很多标签...
  • python 爬取csdn网页保存博客到本地

    千次阅读 2014-07-11 22:46:30
    这几天一直在学用python爬网页 , jin
  • 1、需求:长按页面中的一部分(里面有动态获取的用户昵称、头像及动态生成的二维码),弹出下载框,点击后将这部分保存为图片下载手机里(如图) 2、分析:由于有动态获取数据,需等DOM元素生成之后,再将这一...
  • import java.io.*; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; public class URLFile { public static void main(String[] args) throws FileNotFoundExcep...
  • 导入 requests模块: import requests 调用 get 方法: ...将获得的 html 文件写入本地: with open('test.html','w',encoding='utf-8') as f: f.write(r.text) “test.html” 是文件名...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 154,347
精华内容 61,738
关键字:

怎么把网页保存到本地