第一篇博客——我想要本书

初识爬虫

什么是爬虫?

爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来。想抓取什么?这个由你来控制它咯。

比如它在抓取一个网页,在这个网中他发现了一条道路,其实就是指向网页的超链接,那么它就可以爬到另一张网上来获取数据。这样,整个连在一起的大网对这之蜘蛛来说触手可及,分分钟爬下来不是事儿。

爬虫的基本流程

用户获取网络数据的方式:

方式1:浏览器提交请求--->下载网页代码--->解析成页面

方式2:模拟浏览器发送请求(获取网页代码)->提取有用的数据->存放于数据库或文件中

爬虫要做的就是方式2;

POST方式

import urllib.parse  
import urllib.request  

url="http://liuxin-blog.appspot.com/messageboard/add" 

values={"content":"命令行发出网页请求测试"}  
data=urllib.parse.urlencode(values) 

#创建请求对象  
req=urllib.request.Request(url,data) 
#获得服务器返回的数据  
response=urllib.request.urlopen(req) 
#处理数据  
page=response.read()  

GET方式

import urllib.parse  
import urllib.request  

url="http://www.google.cn/webhp" 

values={"rls":"ig"}  
data=urllib.parse.urlencode(values)  

theurl=url+"?"+data 
#创建请求对象  
req=urllib.request.Request(theurl) 
#获得服务器返回的数据  
response=urllib.request.urlopen(req) 
#处理数据  
page=response.read()  

常用参数

  • method: 向url发送http请求的方法
    • requests.get requests.post get 和 post的本质就是method
  • url: 访问的url
  • params: get请求时传递的参数,post的时候也可以使用
  • data: post请求时传递的请求体
    • 浏览器显示的form data
    • data=json.dumps() == json
  • json: 请求时发送的json数据(json.dumps)
    • 浏览器显示的 request payload
  • headers: 请求头
  • cookies: 请求时使用的cookies
  • proxies: 代理

自动登陆GitHub

import requests
from bs4 import BeautifulSoup


r1 = requests.get(
    url="https://github.com/login",
    headers={
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36'
    },
)


r1_cookie_dict = r1.cookies.get_dict()


s1 = BeautifulSoup(r1.text,'html.parser')
token = s1.find(name='input',attrs={'name':'authenticity_token'}).get('value')
#print(token)


r2 = requests.post(
    url='https://github.com/session',
    data={
        'commit': 'Sign in',
        'utf8': '✓',
        'authenticity_token': token,
        'login': '944194985@qq.com',
        'password': '*****',
    },
    headers={
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36'
    },
    cookies=r1_cookie_dict
)
print(r2.text)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值