爬虫模块-requests
title: python爬虫01
date: 2020-03-08 22:56:12
tags:
1、requests模块
requests模块的底层是urllib,但是比urllib更强大也更加简洁。
基本方法:
- requests.get()
- requests.post()
- requests.request()
- requests.head()
目前阶段只学习到了get和post方法。
其中get方法是获得请求的,post方法是发送请求的。
2、爬取百度贴吧网页实例
# coding=utf-8
import requests
class TiebaSpider:
def __init__(self,tieba_name):
self.tieba_name = tieba_name
self.tieba_url = "https://tieba.baidu.com/f?kw="+ tieba_name +"&ie=utf-8&pn={}"
self.header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36"}
def getUrlList(self):
# url_list = []
# for i in range(3):
# url_list.append(self.tieba_url.format(i*50))
# return url_list
# 下方的是简洁写法,是主流的写法
return [self.tieba_url.format(i*50) for i in range(3)]
def get_content(self,url):
print(url)
response = requests.get(url,headers = self.header)
return response.content.decode()
def save_html(self,response,index):
file_name = "{}吧-第{}页.html".format(self.tieba_name,index)
# with open as 变量名 方式打开文件会在最后关闭文件
with open(file_name,"w",encoding="utf-8") as f:
f.write(response)
def run(self):
#1.获取要爬的url列表
url_list = self.getUrlList()
#2.开始爬取
for url in url_list:
response = self.get_content(url)
# 3.保存文件
self.save_html(response,url_list.index(url)+1)
if __name__ == '__main__':
tieba_name = input("请输入要爬取的贴吧名称:")
spider = TiebaSpider(tieba_name)
spider.run()
爬虫模块-requests的更多相关文章
- Python-网络爬虫模块-requests模块之请求
Python原生库urllib库不太方便使用,本着"人生苦短, 我用Python"的珍惜生命精神, 基于urllib, 开发了一个对人类来说, 更好使用的一个库——requests ...
- Python-网络爬虫模块-requests模块之响应-response
当requests发送请求成功后,requests就会得到返回值,如果服务器响应正常,就会接收到响应数据: Response响应中的属性和方法 常用属性: status_code: 数据类型:int ...
- Python--网络爬虫模块requests模块之响应--response
当requests发送请求成功后,requests就会得到返回值,如果服务器响应正常,就会接收到响应数据: Response响应中的属性和方法 常用属性: status_code: 数据类型:int ...
- 爬虫之requests模块
requests模块 什么是requests模块 requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求.功能强大,用法简洁高效.在爬虫领域中占据着半壁江山的 ...
- 04.Python网络爬虫之requests模块(1)
引入 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. 警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症.冗余代码症.重新发明轮子症.啃文档 ...
- Python 爬虫二 requests模块
requests模块 Requests模块 get方法请求 整体演示一下: import requests response = requests.get("https://www.baid ...
- Python网络爬虫之requests模块(1)
引入 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. 警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症.冗余代码症.重新发明轮子症.啃文档 ...
- 爬虫概念 requests模块
requests模块 - 基于如下5点展开requests模块的学习 什么是requests模块 requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求.功能 ...
- Python爬虫之requests模块(1)
一.引入 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. 警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症.冗余代码症.重新发明轮子症.啃 ...
随机推荐
- StringUtil字符串工具-功能扩展
对java的String类的一些小补充. public class StringUtil { /** 将一个字符串的首字母大写然后返回. @param str 要处理的目标字符串. @return S ...
- UnixIPC之共享内存
Unix-IPC之共享内存 一,共享内存的概念 共享内存通信技术是一种最快的可用IPC形式,它是针对其他通信机制运行效率低和设计的新型通信技术(其他的如:信号量,管道,套接字等).这种通信技术往往与其 ...
- Netlink 内核实现分析 2
netlink 应用层如何创建socket 应用层通过socket()系统调用创建Netlink套接字,socket系统调用的第一个参数可以是AF_NETLINK或PF_NETLINK(在Linux系 ...
- linux 协议栈 实现--编码小知识分析
unlikely 以及likely 作用: rcu_read_lock 以及rcu_read_unlock 作用: rcu_dereference .rcu_dereference_protecte ...
- mysql mybatis Date java时间和写入数据库时间不符差一秒问题
1,java的数据库实体定义 private Timestamp createTime:2,非常重要!ddl语句建表字段的单位 datetime要手动设置保留3位毫秒数,不然就四舍五入了! ALTER ...
- shell脚本的自动交互
使用expect来自动应答shell的交互 #!/usr/bin/expect spawn openssl req -new -key server.key -out server1.csr expe ...
- [LeetCode题解]876. 链表的中间结点 | 快慢指针
解题思路 使用快慢指针.这里要注意的是,while 的条件会影响当中间节点有两个时,slow 指向的是第一个,还是第二个节点. // 返回的是第一个 while(fast.next != null & ...
- Jrebel & Xrebel 在线激活方法 (亲测可用)
一开始用eclipse的时候虽然这是一个狂吃内存的家伙,但是调试代码是真的舒服,修改过的代码可以不用重启热加载,后来转idea,虽然idea很完美但是也有不足的地方,比如代码调试就不能热加载. 还好有 ...
- HDU100题简要题解(2040~2049)
HDU2040 亲和数 题目链接 Problem Description 古希腊数学家毕达哥拉斯在自然数研究中发现,220的所有真约数(即不是自身的约数)之和为: 1+2+4+5+10+11+20+2 ...
- Linux 入侵痕迹清理技巧
清除history历史命令记录 vim ~/.bash_history //编辑history记录文件,删除部分不想被保存的历史命令 history -c //清除当前用户的history命令记录 H ...