Python网络编程相关的库与爬虫基础

PythonWeb编程

①相关的库:urlib、urlib2、requests

python中自带urlib和urlib2,他们主要使用函数如下:

urllib:

urlib.urlopen()
urlib.urlretrieve()
urlretrieve(url,filename=None,reporthbook=None,data=None)

urllib2:

urllib2.urlopen()
urllib2.Requests()

urllib和urllibs2的使用方法不同的是:urllib可以用来下载文件、而urllib2用来定制请求头

urllib.urlretrieve下载文件:

import urllib,urllib2
urllib.urlretrieve('https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png',filename='/home/ubuntu/Test/a.png')

成功后会返回:

('/home/ubuntu/Test/baidu.png', <httplib.HTTPMessage instance at 0x7f14f228edc0>)

 urllib.requests模块

我们可以通过requests发送一些网络请求:

r=request.get("http://www.baidu.com")    #GET
r=request.post("http://www.baidu.com")   #POST
r=request.put("http://www.baidu.com")    #PUT
r=request.delete("http://www.baidu.com") #DELETE
r=request.head("http://www.baidu.com")   #HEAD
r=request.options("http://www.baidu.com")#OPTIONS

我们可以通过request为URL传递参数

import requests
payload={'username':'admin','password':'123456'}
r=requests.get("http://www.baidu.com",params=payload)
#r=requests.post("http://www.baidu.com",params=payload)
print r.url

可以看到页面的URL为:

http://www.baidu.com/?username=admin&password=123456

我们也可以看到页面的响应内容、二进制的响应内容、响应的状态码、

print r.text         #页面的响应内容
print r.content      #二进制的响应内容
print r.status_code  #响应的状态码
print r.headers      #查看响应头
print r.cookies      #查看Cookie
​

r.text与r.content具体区别不大

此外requests库还可以定制请求头,这种情况在爬虫需要登陆的时候十分有用

url="http://www.baidu.com"
headers={'content-type':'application/json'}
r=requests.get(url,headers=headers)

②爬虫:

漏洞扫描的底层都是基于爬虫

最基本的爬虫:

爬取B站搜索Python后前50页所有和Python有关的题目

import re
import requests
​
url="https://search.bilibili.com/all?keyword=Python&from_source=nav_search_new&page="
for i in range(1,51):
    turl=url+str(i);
    turl=requests.get(turl).text
    title=re.findall(r'<a title="(.*?)" href="//www.bilibili.com/video/',turl)
    title=set(title)
    for i in title:
        print (i)
 



上一篇:python爬虫:模拟有道词典翻译文本


下一篇:python 获取美元实际汇率