爬虫
戴上微笑
这个作者很懒,什么都没留下…
展开
-
python 爬虫 缓存的应用 反爬机制
首先需要安装requests-cache模块 pip install requests-cache测试模块是否安装成功import requests_cacheversion = requests_cache.__version__print('版本号为:'version)输出结果:版本号为:0.5.2在使用Requests-Cache模块实现请求缓存时,只需要调用install_cache()函数即可,其语法如下:requests_cache.install_cache(cache_na原创 2020-12-01 09:31:26 · 423 阅读 · 0 评论 -
python 爬虫 检测代理ip是否有效
import requestsimport pandasfrom lxml import etreeip_table=pandas.read_excel('ip.xlsx')ip = ip_table['ip']headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/53原创 2020-12-01 09:00:03 · 564 阅读 · 0 评论 -
python 爬虫 获取免费的代理ip地址
import requestsfrom lxml import etreeimport pandas as pdip_list=[]#创建保存IP地址的列表def get_ip(url,headers): response = requests.get(url,headers=headers) response.encoding='utf-8'#设置编码方式 if response.status_code==200:#判断请求是否成功 html = etree原创 2020-11-30 13:32:47 · 884 阅读 · 0 评论 -
python 爬虫 代理的应用
在爬取网页的过程中,经常会出现不就前可以爬取的网页现在无法爬取的情况,这是因为您的IP地址被爬取网站的服务器屏蔽了。此时,需要设置代理,代码如下:import requests#创建头部信息headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36'}proxy = {'http'原创 2020-11-30 13:12:15 · 112 阅读 · 0 评论 -
python 爬虫 requests模块实现上传文件files参数
使用requests模块实现向服务器上传文件非常简单,只需要指定post()函数中的files参数即可。files参数可以指定一个BufferedReader对象,该对象可以使用内置的open()函数返回。代码如下:import requestsbd = open('百度logo.png','rb')file = {'file':bd}response = requests.post('http://httpbin.org/post',files=file)print(response.text)原创 2020-11-30 13:04:09 · 4973 阅读 · 0 评论 -
python 爬虫 网络超时与异常
在访问一个网页时,如果该网页长时间未响应,系统就会判断该网页超时,无法打开网页。模拟代码如下:import requestsfor a in range(0,100): try: response = requests.get('http://www.baidu.com/', timeout=0.02) print(response.status_code) except Exception as e: print('异常'+str(e))原创 2020-11-30 12:57:27 · 1625 阅读 · 0 评论 -
python 爬虫 验证请求 requests模块中的auth参数可以实现
import requests#导入requests模块from requests.auth import HTTPBasicAuth#导入HTTPBasicAuth类#定义请求地址url = 'http://sck.rjkflm.com:666/spider/auth/'ah = HTTPBasicAuth('admin','admin')response = requests.get(url=url,auth=ah)if response.status_code==200: prin原创 2020-11-30 11:21:55 · 2053 阅读 · 0 评论 -
python 爬虫 requests模块中的会话请求 Session
在实现获得某个登陆后页面的信息时,可以使用设置Cookies的方式先实现模拟登陆,然后在获得登陆后的页面信息内容。这样虽然尅成功的获得页面中的信息,但是比较麻烦。在requests模块中的Session对象,通过该对象可以实现在同一会话内发送多次网络请求的功能,这相当于在浏览器中打开了一个新的选项卡,此时再获得登陆后页面中的数据时,可以发送两次请求,第一次发送登陆请求,而第二次请求可以在不设置Cookies的情况下获取登陆后的页面数据,代码如下:import requests#导入requests模块原创 2020-11-30 10:59:45 · 991 阅读 · 0 评论 -
python 爬虫 requests模块 中的Cookies 验证 通过验证cookies模拟登陆豆瓣登陆
在爬取某些数据时,需要进行网页的登陆,才可以进行数据的抓取工作。Cookies登陆就像很多网页中的自动登陆功能一样,可以让用户第二次登陆时不在需要验证账号和密码的情况下进行登陆。在requests模块中实现Cookies登陆时,首先需要在浏览器的开发者工具中找到可以实现登陆的Cookies信息,然后将Cookies信息处理并添加至RequestsCookieJar的对象中,最后将RequestsCookieJar对象作为网络请求的Cookies参数发送网络请求即可。登陆前F12打开开发者工具,然后点击登陆原创 2020-11-30 10:04:23 · 672 阅读 · 1 评论 -
python 爬虫 添加请求头headers
有时候的请求网页内容时,会发现无论通过GET,POST以及其他请求方式,都会出现403错误。这种现象多数为服务器拒绝了您的访问,那是因为这些网站为了防止恶意采集信息,所使用的反爬虫设置。此时可以通过模拟浏览器的头部信息来进行访问,这样就能解决以上反爬设置的问题。代码如下:import requestsurl = 'https://www.baidu.com'#创建需要爬取网页的地址#创建头部信息headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.原创 2020-11-30 09:18:58 · 2859 阅读 · 1 评论 -
python 爬虫 POST请求
import requests # 导入网络请求模块requestsimport json # 导入json模块# 字典类型的表单参数data = { '1': '能力是有限的,而努力是无限的。', '2': '星光不问赶路人,时光不负有心人。'}#发送网络请求response = requests.post('http://httpbin.org/post', data=data)response_dict = json.loads(response.text)#将响应原创 2020-11-30 09:09:31 · 1761 阅读 · 0 评论 -
python 爬虫 GET(带参) 请求 配置params参数
import requests#发送网络请求response = requests.get('http://httpbin.org/get?name=Jack&age=30')print(response.text)输出结果:{ "args": { "age": "30", "name": "Jack" }, "headers": { "Accept": "*/*", "Accept-Encoding": "gzip, deflate",原创 2020-11-30 08:51:05 · 5711 阅读 · 0 评论 -
python 爬虫 爬取图片 二进制数据
import requests#发送网络请求response = requests.get(‘https://www.baidu.com/img/bd_logo1.png?where=super’)print(response.content)#打印二进制数据with open(‘百度logo.png’, ‘wb’) as f:#通过open()函数将二进制数据写入本地文件f.write(response.content)#写入...原创 2020-11-29 23:27:41 · 948 阅读 · 0 评论 -
python 爬虫请求模块requests之get请求
import requests#发送网络请求response = requests.get(‘https://www.baidu.com’)print(response.status_code)#打印状态码print(response.url)#打印请求urlprint(response.headers)#打印头部信息print(response.cookies)#打印Cookie信息#实现不带参数的网络请求...原创 2020-11-29 23:16:05 · 651 阅读 · 0 评论