精华内容
下载资源
问答
  • python获取网页数据

    千次阅读 2021-06-03 09:22:46
    第一:下载图片 import urllib.request ...cat_img = response.read() with open('cat_500_600.jpg','wb') as f: f.write(cat_img) 第二:使用有道翻译,加请求头,加访问data ...import urllib.pars

    第一:下载图片

    import urllib.request
    
    response = urllib.request.urlopen('http://placekitten.com/g/500/600')
    cat_img = response.read()
    with open('cat_500_600.jpg','wb') as f:
        f.write(cat_img)

    第二:使用有道翻译,加请求头,加访问data

    import urllib.request
    import urllib.parse
    import json
    
    
    content = input('输入需要翻译的内容:')
    
    url = 'https://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
    data = {}
    data['i']= content
    data['from']='AUTO'
    data['to']='AUTO'
    data['smartresult']='dict'
    data['client']='fanyideskweb'
    data['salt']='16226799592359'
    data['sign']='36b4d3a6f8cec877cb56f24fb64f85bb'
    data['lts']='1622679959235'
    data['bv']='9ff8102373b1562471f4b6881a5653e9'
    data['doctype']='json'
    data['version']= '2.1'
    data['keyfrom']='fanyi.web'
    data['action']='FY_BY_REALTlME'
    data = urllib.parse.urlencode(data).encode('UTF-8')
    
    #添加请求头
    head = {}
    head['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36'
    
    
    req= urllib.request.Request(url,data,head)
    response = urllib.request.urlopen(req)
    html = response.read().decode('UTF-8')
    
    target = json.loads(html)
    
    res = target['translateResult'][0][0]['tgt']
    
    print('翻译结果:%s' %(res))

    第三:如何使用代理

    import urllib.request
    
    url = 'http://www.whatismyip.com.tw/'
    
    proxy_support = urllib.request.ProxyHandler({'http':'119.6.144.73:81'})
    opener = urllib.request.build_opener(proxy_support)
    urllib.request.install_opener(opener)
    
    response = urllib.request.urlopen(url)
    html = response.read().decode('UTF-8')
    print(html)

     

    展开全文
  • # get获取所有资源,head获取资源头部信息 # 如果要把自己的资源放在url对应的位置上,可以采用put # post,patch方法,如果要删掉系统的资源可以采用delete import requests url = 'https://jira.n.x.
    '''
    url是通过HTTP协议存取资源的Internet路径,
    一个url对应要给数据资源
    如何通过内网统一认证才能爬取内网数据
    '''
    # 云端上的所有资源都采用url进行标识,
    # 如果我们要获取所有的资源的时候就采用get或者head方法
    # get获取所有资源,head获取资源头部信息
    # 如果要把自己的资源放在url对应的位置上,可以采用put
    # post,patch方法,如果要删掉系统的资源可以采用delete
    import requests
    url = 'https://jira.n.xiaomi.com/issues/?jql=reporter%20%3D%20currentUser()'
    # url = 'https://www.amazon.cn/dp/B08X1ZV2KM/ref=s9_acsd_hps_bw_c2_x_1_i?pf_rd_m=A1U5RCOVU0NYF2&pf_rd_s=merchandised-search-2&pf_rd_r=KSMG6RNBWAKH7T83WQFF&pf_rd_t=101&pf_rd_p=d09c3b61-0cd2-43f6-aab8-8fa6f55ed55c&pf_rd_i=116169071'
    # url = 'https://image.baidu.com/search/albumsdetail?tn=albumsdetail&word=%E5%9F%8E%E5%B8%82%E5%BB%BA%E7%AD%91%E6%91%84%E5%BD%B1%E4%B8%93%E9%A2%98&fr=searchindex_album%20&album_tab=%E5%BB%BA%E7%AD%91&album_id=7&rn=30'
    '''
    访问出现错误,
    返回的内容出现API的信息,访问出现错误,错误通过API造成的
    网站对网络爬虫限制的方法:
    1#:第一种通过特定协议告知爬虫哪些可以访问,哪些不可以访问
    2#:通过判断对网站访问的http的头部信息,
        来查看访问是不是由于爬虫引起的
        网站一般接受由浏览器引发的http请求
        对于爬虫的请求网站是可以拒绝的
    resquests库的Response对象,包含requests请求
    通过它可以查看我们发给网站的头部信息
    通过更改头部信息,模拟浏览器获取爬虫数据
    构造一个浏览器身份标识的字段
    如果爬取内网的信息一般要通过CAS认证,
    内网统一认证 (Central Authentication Service)
    '''
    try:
        #
        kv = {'user-agent':'Mozilla/6.0'}
        re = requests.get(url, headers = kv)
        print(re.request.headers)
        re.raise_for_status()
        # 保证返回的数据能够正确解码
        re.encoding = re.apparent_encoding
    
        print(re.text[:1000])
    except Exception as e:
        print(e)
    展开全文
  • Python获取网页数据

    2017-09-07 15:16:39
    #coding=utf-8 import urllib.request import re import time #lxml提供了丰富的操作xml的api ...#获取指定url响应页面内容 def getHtml(url):  page = urllib.request.urlopen(url)  html
    #coding=utf-8
    import urllib.request
    import re

    import time

    #lxml提供了丰富的操作xml的api

    from lxml import etree


    #获取指定url响应页面内容

    def getHtml(url):
        page = urllib.request.urlopen(url)
        html = page.read()
        return html


    #解析页面内容,获取需要的值

    def parserHtml(page):
        doc = etree.HTML(page.decode('utf-8', 'ignore'))
        all_red = doc.xpath('//li[@class="ball_red"]')
        all_blue = doc.xpath('//li[@class="ball_blue"]')
        strNo = ""
        for row in all_red:
            strNo += row.text + " "    
        strNo += all_blue[0].text
        return strNo

     

    #保存内容至文件      

    def saveFile(filename,contents):
        fh = open(filename, 'wb+')
        fh.write(contents.encode(encoding='utf-8'))
        fh.close()


    #读本地页面

    indexHtml = open('source.html','r').read()
    doc = etree.HTML(indexHtml)        
    all_href = doc.xpath('//a')
    //打开本地文件
    result = open('ssq.txt', 'wb+')

    #循环

    for href in all_href:

        page = getHtml(href.get('href'))
        line = href.text + ':' + parserHtml(page) + '\n'

        print(line)

        #结果写到ssq.txt文件中

        result.write(line.encode(encoding='utf-8'))

        #睡眠2s

        time.sleep(2)
        
    result.close()

    #page = getHtml("http://kaijiang.500.com/shtml/ssq/17097.shtml")
    #
    #saveFile("ssq.txt",strNo)



    展开全文
  • 最近在用python requests库爬取网页上的json数据,但是获得的数据中带有JQuery前缀,麻烦各位能不能帮忙解释一下这是什么,Python中有什么函数能自动去掉这个前缀吗? <p style="text-align:center"><img alt="" ...
  • Python爬取网页数据

    万次阅读 多人点赞 2018-08-29 17:20:35
    都说python网页数据方便,我们今天就来试试,python爬取数据到底有多方便 简介 爬取数据,基本都是通过网页的URL得到这个网页的源代码,根据源代码筛选出需要的信息 准备 IDE:pyCharm 库:requests、...

    都说python爬网页数据方便,我们今天就来试试,python爬取数据到底有多方便


    简介

    爬取数据,基本都是通过网页的URL得到这个网页的源代码,根据源代码筛选出需要的信息

    准备

    IDE:pyCharm
    库:requestslxml

    大概介绍一下,这俩库主要为我们做什么服务的
    requests:获取网页源代码
    lxml:得到网页源代码中的指定数据

    言简意赅有没有 ^_^

    搭建环境

    这里的搭建环境,可不是搭建python的开发环境,这里的搭建环境是指,我们使用pycharm新建一个python项目,然后弄好requests和lxml
    新建一个项目:

    光溜溜的啥也没有,新建个src文件夹再在里面直接新建一个Test.py吧

    依赖库导入
    我们不是说要使用requests吗,来吧
    由于我们使用的是pycharm,所以我们导入这两个库就会显的格外简单,如图:
    这里写图片描述
    Test.py中输入:

    import requests

    这个时候,requests会报红线,这时候,我们将光标对准requests,按快捷键:alt + enter,pycharm会给出解决之道,这时候,选择install package requests,pycharm就会自动为我们安装了,我们只需要稍等片刻,这个库就安装好了。lxml的安装方式同理.

    将这两个库安装完毕后,编译器就不会报红线了

    接下来进入快乐的爬虫时间

    获取网页源代码

    之前我就说过,requests可以很方便的让我们得到网页的源代码
    网页就拿我的博客地址举例好了:https://blog.csdn.net/it_xf?viewmode=contents
    获取源码:

    # 获取源码
    html = requests.get("https://blog.csdn.net/it_xf?viewmode=contents")
    # 打印源码
    print html.text

    代码就是这么简单,这个html.text便是这个URL的源码

    获取指定数据

    现在我们已经得到网页源码了,这时就需要用到lxml来来筛选出我们所需要的信息
    这里我就以得到我博客列表为例

    首先我们需要分析一下源码,我这里使用的是chrome浏览器,所以右键检查,便是这样一份画面:
    这里写图片描述
    然后在源代码中,定位找到第一篇
    像这样?
    这里写图片描述
    操作太快看不清是不是?
    我这里解释一下,首先点击源码页右上角的箭头,然后在网页内容中选中文章标题,这个时候,源码会定位到标题这里,
    这时候选中源码的标题元素,右键复制如图:

    得到xpath,嘿嘿,知道这是什么吗,这个东西相当于地址。比如网页某长图片在源码中的位置,我们不是复制了吗,粘贴出来看看长啥样

    //*[@id="mainBox"]/main/div[2]/div[1]/h4/a

    这里给你解释解释:

    // 定位根节点
    / 往下层寻找
    提取文本内容:/text()
    提取属性内容:/@xxxx

    后面两个我们还没有在这个表达式见过,待会说,先摆张图放出来

    表达式://*[@id="mainBox"]/main/div[2]/div[1]/h4/a
    我们来琢磨琢磨,首先,//表示根节点,也就是说啊,这//后面的东西为根,则说明只有一个啊
    也就是说,我们需要的东西,在这里面
    然后/表示往下层寻找,根据图片,也显而易见,div -> main -> div[2] -> div[1] -> h4 -> a
    追踪到a这里,我想,你们应该也就看得懂了,然后我们在后面加个/text,表示要把元素的内容提取出来,所以我们最终的表达式长这样:

    //*[@id="mainBox"]/main/div[2]/div[1]/h4/a/text()

    这个表达式只针对这个网页的这个元素,不难理解吧?
    那么这个东西怎么用呢?
    所有代码:

    import requests
    from lxml import etree
    
    html = requests.get("https://blog.csdn.net/it_xf?viewmode=contents")
    # print html.text
    
    etree_html = etree.HTML(html.text)
    content = etree_html.xpath('//*[@id="mainBox"]/main/div[2]/div[1]/h4/a/text()')
    for each in content:
        print(each)

    这时候,each里面的数据就是我们想要得到的数据了
    打印结果:

    
    
    
            如何撸一个ArrayList      
    
    

    打印结果却是这个结果,我们把换行和空格去掉

    import requests
    from lxml import etree
    
    html = requests.get("https://blog.csdn.net/it_xf?viewmode=contents")
    # print html.text
    
    etree_html = etree.HTML(html.text)
    content = etree_html.xpath('//*[@id="mainBox"]/main/div[2]/div[1]/h4/a/text()')
    
    for each in content:
        replace = each.replace('\n', '').replace(' ', '')
        if replace == '\n' or replace == '':
            continue
        else:
            print(replace)
    

    打印结果:

    如何撸一个ArrayList 

    相当nice,那么,如果我们要得到所有的博客列表呢
    看图看表达式分析大法

    表达式://*[@id="mainBox"]/main/div[2]/div[1]/h4/a/text()
    其实我们能够很容易发现,main->div[2]其实包含所有文章,只是我们取了main->div[2]->div[1],也就是说我们只是取了第一个而已。所以,其实表达式写出这样,就可以得到所有的文章了

    //*[@id="mainBox"]/main/div[2]/div/h4/a/text()

    再来一次:

    import requests
    from lxml import etree
    
    html = requests.get("https://blog.csdn.net/it_xf?viewmode=contents")
    # print html.text
    
    etree_html = etree.HTML(html.text)
    content = etree_html.xpath('//*[@id="mainBox"]/main/div[2]/div/h4/a/text()')
    
    for each in content:
        replace = each.replace('\n', '').replace(' ', '')
        if replace == '\n' or replace == '':
            continue
        else:
            print(replace)
    
    

    打印结果:

    如何撸一个ArrayList
    Android相机屏幕适配
    Tinker关于clean后准基包消失的解决方案
    Tinker使用指南
    git分支的使用
    如何将Androidstudio中的项目导入到第三方的git托管库中
    遍历矩阵
    从矩阵中取出子矩阵
    AndroidStudio配置OpenCV
    一步一步了解handler机制
    Android常用框架
    Android绘制波浪线
    RxJava系列教程之线程篇(五)
    RxJava系列教程之过滤篇(四)
    RxJava系列教程之变换篇(三)
    RxJava系列教程之创建篇(二)
    RxJava系列教程之介绍篇(一)
    一个例子让你彻底理解java接口回调
    SharedPreferences的用法及指南
    异步加载网络图片带进度
    VideoView加载闪黑屏
    android视频播放vitamio的简单运用
    仿网易新闻分类刷新
    ListViewCheckBox简单实现批量删除
    Android如何高效加载大图
    Android聊天界面实现方式
    抽屉侧滑菜单Drawerlayout-基本使用方法
    android-引导页的实现方式
    Java设计模式--工厂模式的自述
    javaweb学习路线
    getWindow().setFlags()使用说明书
    歪解Activity生命周期-----初学者彻底理解指南

    相当nice,我们得到了所有的文章列表。

    总结

    我们用到了requests获取网页列表,用lxml筛选数据,可以看出python用来在网页上爬取数据确实方便不少,chrome也支持直接在源码中得到表达式xpath,这两个库的内容肯定不止这一点点,还有很多功能等着你们去挖掘。对了,其中在写这篇博客的同时,我发现了一个很重要的问题:我的文章写的太少啦!【逃】

    展开全文
  • 1. 使用 urllib.request 获取网页urllib 是 Python 內建的 HTTP 库, 使用 urllib 可以只需要很简单的步骤就能高效采集数据; 配合 Beautiful 等 HTML 解析库, 可以编写出用于采集网络数据的大型爬虫;注: 示例代码使用...
  • 下面是编程之家 jb51.cc 通过网络收集整理的代码片段。... /usr/bin/python# -*- coding:utf-8 -*-"""""Created on 2013-11-5@author: Java"""import urllib2import timei...
  • 本篇介绍使用 python 获取网页数据的方法,要爬取 51job Python 职位的招聘信息。
  • 由于需要学习机器学习的内容,了解到python在机器学习中使用很方便,开始学习之,机器... 用python获取网页数据,题目要求如下:  我使用的是spyder开发环境,python的版本是3.5。代码如下:   import u...
  • import reimport urllib.requeststring='<div class="name">(.*?)</div>'huo=urllib.request.urlopen("https://read.douban.com/provider/all").read()huo=huo.decode("utf-8")huo1=re.compile(str...
  • Python获取网页编码

    千次阅读 2018-11-19 13:43:39
    Python获取网页编码 在做爬虫的时候有的网站中的网页可能有不同的编码方式,我们则需要把获取到的数据根据网页编码方式获取。所以我们要先判断当前网页使用的是何种编码方式,为此我使用requests库解析当前页的编码...
  • 使用python获取网页中指定数据

    千次阅读 2015-03-30 20:30:58
    使用python读取网页内容python使用cookiepython输出制表符... 为了体验某款游戏的玩法,我最近在玩一款游戏。(各位看官权且相信~~(>__ 目前python初学者,代码拙劣之处欢迎批评(*^__^*)  查看登陆页面的源码,...
  • 但是我们如何将网页表格数据使用python保存为Excel文件? 思路整理: 一般情况下我们能发现网页的表格数据主要是在<table>标签中实现的网页表格数据,这里我们使用Pandas的read_html()方法就可以读取标签中...
  • wp = urllib.request.urlopen(url) #打开数据网页数据 content = wp.read() fp = open(file + Link_Address, "wb") #写入指定文件夹 fp.write(content) #写入数据 fp.close() #关闭文件 end = datetime....
  • Python爬取网页数据错误 使用selenium库,出现错误是为什么??? 代码如下: import time from selenium import webdriver url = 'https://zz.58.com/zufang/?utm_source=link&spm=u-2eptjc3qp988mb62t1.psy_...
  • 通过python 爬虫从网页获取多页数标题、内容、时间、等级、学习人数等信息;# -*-coding:utf-8 -*- ''' Created on 2017年3月13日@author: July_whj ''' import requests import sys import re #由于网页编码是...
  • 使用python获取数据,目前最主要的方法集中在文本文件,Excel文件,关系型和非关系型数据库,ApI、网页等方面。 一、从文本文件读取运营数据 1、使用read/readline/readlines读取数据 python可以读取任意格式的...
  • 一、涉及的Python库 requests:获取网页源代码 BeautifulSoup:从网页中抓取数据 xlwt:导出表格 (一)requests 1.requests库文档: requests库文档链接 2.request库的常用方法: 3.编写代码 #导入requests模块 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,714
精华内容 1,485
关键字:

python获取网页数据

python 订阅