三分钟爬虫入门

想要采集数据,要明确要得到的内容是什么?是HTML源码,还是Json格式的字符串等。

抓取大多数情况属于get请求,即直接从对方服务器上获取数据。

Python中自带urllib及urllib2这两个模块,基本上能满足一般的页面抓取。

urllib 是 Python 自带的库,可以用来进行网络数据的收集和下载。

from urllib import request

url=’time.geekbang.org/'

response=request.urlopen(url,timeout=1)

print(response.read().decode(‘utf-8’))

只需 4 行,就可以拿到极客时间的首页网页代码。当然,你会发现首页网页的代码只有一部分,这是因为极客时

间的大量数据都是通过 JS 请求后台加载的。

1、get 方法发送数据

此外,对于带有查询字段的url,get请求一般会将来请求的数据附在url之后,以?分割url和传输数据,多个参数用&连接。

import requests data = {‘wd’:’nike’, ‘ie’:’utf-8’} url=’https://www.baidu.com' response = requests.get(url=url, params=data)

如下示例:

三分钟爬虫入门
2、post 方法发送数据

默认的请求格式是 application/x-www-form-urlencoded

from urllib import request

from urllib import parse

data=bytes(parse.urlencode({‘word’:’hello wlzcool’}),encoding=’utf8’)

url=’httpbin.org/post'

response=request.urlopen(url,data=data)

print(response.read().decode(‘utf-8’))

如下示列:

{

“args”: {},

“data”: “”,

“files”: {},

“form”: {

“word”: “hello wlzcool”

},

“headers”: {

“Accept-Encoding”: “identity”,

“Content-Length”: “18”,

“Content-Type”: “application/x-www-form-urlencoded”,

“Host”: “httpbin.org”,

“User-Agent”: “Python-urllib/3.6”,

“X-Amzn-Trace-Id”: “Root=1-5e819df5-cc1d4ab38f5b4a59c23d09e9”

},

“json”: null,

“origin”: “”,

“url”: “http://httpbin.org/post"

}

修改 User-Agent

有些网站会检查你是不是真的浏览器访问,还是机器自动访问的。这种情况,加上User-Agent,表明你是浏览器访问即可。有时还会检查是否带Referer信息还会检查你的Referer是否合法,一般再加上Referer。

User-Agent可以用亿牛云提供给的真实库,Referer的来源可以伪装成百度搜索来的。

headers = {‘User-Agent’:’Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.1276.73 Safari/537.36’, ‘Referer’:’https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=nike'} response = requests.get(url=url, headers=headers)

如果想真正的做好一个爬虫,需要自己努力学习python爬虫知识,网络爬虫有很多限制,需要自己去实践研究,做好爬虫程序的相关优化,累计经验,才能采集到想要的数据。

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!