资讯专栏INFORMATION COLUMN

Python爬虫之urllib示例

mylxsw / 1724人阅读

摘要:最简单直接抓取页面代码使用构造一个对象,推荐发送数据,张三发送数据,张三发送数据和张三

1、最简单:直接抓取页面代码
import urllib.request
import urllib.error

url = "http://test.com/test.html"
try:
    resp = urllib.request.urlopen(url)
except urllib.error.HTTPError as e:
    print(e.code, e.msg)
except urllib.error.URLError as e:
    print(e.reason)
else:
    result = resp.read().decode("utf-8")
    print(result)
2、使用 Request
import urllib.request
import urllib.error

url = "http://test.com/test.html"
try:
    req = urllib.request.Request(url)  # 构造一个Request对象,推荐
    resp = urllib.request.urlopen(req)
except urllib.error.HTTPError as e:
    print(e.code, e.msg)
except urllib.error.URLError as e:
    print(e.reason)
else:
    result = resp.read().decode("utf-8")
    print(result)
3、发送数据,GET
import urlib.request
import urllib.parse

url = "http://test.com/a.php?act=login&id=123"
req = urllib.request.Request(url)
resp = urllib.request.urlopen(req)

# or

url = "http://test.com/a.php"
params = {
    "act": "login",
    "id": 123,
    "name": u"张三"
}
geturl = url + "?" + urllib.parse.urlencode(params)
req = urllib.request.Request(geturl)
resp = urllib.request.urlopen(req)

print(resp.read().decode("utf-8"))
# {"act":"login","name":"u5f20u4e09","id":"123"}
4、发送数据,POST
import urllib.request
import urllib.parse

url = "http://test.com/a.php"
params = {
    "act": "login",
    "login[name]": u"张三",
    "login[password]": "123456"
}
data = urllib.parse.urlencode(params).encode("utf-8")

req = urllib.request.Request(url, data)
resp = urllib.request.urlopen(req)

print(resp.read().decode("utf-8"))
# {"act":"login","login":{"password":"123456","name":"u5f20u4e09"}}}
5、发送数据和header
import urllib.request
import urllib.parse

url = "http://test.com/a.php"
params = {
    "act": "login",
    "login[name]": u"张三",
    "login[password]": "123456"
}
data = urllib.parse.urlencode(params).encode("utf-8")

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) "
                  "Chrome/54.0.2840.99 Safari/537.36",
    "Referer": "http://www.baidu.com",
    "haha": "xixi"
}

req = urllib.request.Request(url, data, headers)
resp = urllib.request.urlopen(req)

print(resp.read().decode("utf-8"))

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/41688.html

相关文章

  • 零基础如何学爬虫技术

    摘要:楚江数据是专业的互联网数据技术服务,现整理出零基础如何学爬虫技术以供学习,。本文来源知乎作者路人甲链接楚江数据提供网站数据采集和爬虫软件定制开发服务,服务范围涵盖社交网络电子商务分类信息学术研究等。 楚江数据是专业的互联网数据技术服务,现整理出零基础如何学爬虫技术以供学习,http://www.chujiangdata.com。 第一:Python爬虫学习系列教程(来源于某博主:htt...

    KunMinX 评论0 收藏0
  • Python爬虫多线程下载程序类电子书

    摘要:其页面如下那么我们是否可以通过来制作爬虫来帮助我们实现自动下载这些电子书呢答案是笔者在空闲时间写了一个爬虫,主要利用函数和多线程来下载这些电子书。   近段时间,笔者发现一个神奇的网站:http://www.allitebooks.com/ ,该网站提供了大量免费的编程方面的电子书,是技术爱好者们的福音。其页面如下: showImg(https://segmentfault.com/i...

    walterrwu 评论0 收藏0
  • Python入门网络爬虫精华版

    摘要:学习网络爬虫主要分个大的版块抓取,分析,存储另外,比较常用的爬虫框架,这里最后也详细介绍一下。网络爬虫要做的,简单来说,就是实现浏览器的功能。 Python学习网络爬虫主要分3个大的版块:抓取,分析,存储 另外,比较常用的爬虫框架Scrapy,这里最后也详细介绍一下。 首先列举一下本人总结的相关文章,这些覆盖了入门网络爬虫需要的基本概念和技巧:宁哥的小站-网络爬虫,当我们在浏览器中输入...

    Bmob 评论0 收藏0
  • 爬虫系列二】python基础知识的了解

    摘要:数据传送上面介绍了参数,这里就是将需要的参数通过方式传入上述代码引入了库,现在我们模拟登陆京东商场,但是应该是无法登陆的,一般都是需要设置一些头部的工作,或者其它的参数,这里使用了库对参数,进行一下。 了解了 前面的环境搭建,以及python的基础知识的学习,咱们接下来学习一下,如何将网页扒下来 一、案例介绍 当我们打开浏览器,打开页面,看到的是好看的页面,但是其实是由浏览器解释才呈现...

    SHERlocked93 评论0 收藏0
  • python爬虫ajax请求

    摘要:爬虫之请求爬取豆瓣网的分页浏览请求请输入想要第几页的数据构建参数将字典转化为修改肯德基配送信息请求请输入要查询的城市请输入要查询第几页请输入要多少个 python爬虫之ajax请求 爬取豆瓣网的分页浏览get请求: import urllib.request import urllib.parse url = https://movie.douban.com/j/chart/top...

    崔晓明 评论0 收藏0

发表评论

0条评论

mylxsw

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<