python爬虫之requests

环境:windows10+python3.5

安装lxml解析:pip install lxml

安装requests库:pip install requests


一个简单的爬虫

import requests

r=requests.get("http://www.baidu.com")

r.encoding="utf-8"

print(r.text)

逐行解读代码:

- import requests

引入requests库,这是实现requests爬虫的基础

- requests.get()

放入url,就会返回一个response对象,包含了网页的内容、状态等信息,需要注意的是url必须带上“http://”

- 将其字符编码转换为utf-8格式『推荐这样的编码,不然很容易出现乱码的问题』

- 显示响应的文本内容,用utf-8编码后就可以显示中文字符

## 完善爬虫

```

import requests

url='http://www.baidu.com'

r = requests.get(url)

r.raise_for_status()

print(r.status_code)

r.encoding=r.apparent_encoding

print(r.text)

```

- r.raise_for_status()

用于获取状态码,如果网址错误会抛出异常的信息

- r.status_code

就是响应体内的状态码信息,可以用print函数展示出来

- r.encoding=r.apparent_encoding

将响应的编码改变为网页用的编码,如果网站内容有中文字符,那么直接使用他的编码就可以展示中文的内容了

## 带参数的爬虫

```

import requests

kv={'value':"keyword"}

ua ={'user-agent':'123'}

url="http://httpbin.org/get"

try:

r=requests.get(url,params=kv,headers=ua)

r.encoding=r.apparent_encoding

print(r.text)

except:

print('error')

```

通过分析响应的内容,就可以看到我们传入的参数了

>"args": {"value": "keyword"}

另外,我们通过设定headers,改变了useragent信息,所以我们可以看到响应的以下信息

>"User-Agent": "123"

通过设定user-agent,我们可以改变用户浏览器等信息,防止某些网站根据这个内容判断我们是否为爬虫

## 查找ip地址的小例子

beautifulsoup是一个非常方便的html解析工具

我们通过它可以解析查找我们想要的内容

>安装:pip install beautifulsoup

```

import requests

from bs4 import BeautifulSoup

ip=input()

url='http://m.ip138.com/ip.asp?ip='+ip

r=requests.get(url)

obs=BeautifulSoup(r.text,"html.parser")

q=obs.find_all('p')[-1].get_text()

a=str(q).split(':')[-1]

print(a)

```

from bs4 import BeautifulSoup先引入bs库

通过input()输入ip地址,传入url里

obs=BeautifulSoup(r.text,"html.parser")建立一个beautifulsoup的对象

q=obs.find_all('p')[-1].get_text()

找出最后的p标签并获取内容

a=str(q).split(':')[-1]

因为内容是用:分开的

我们获取内容的最后一个用:分开的内容

**我们如何从响应中解析出来自己需要的内容呢**

**这就需要学习bs、正则、xpath等内容了**

你可能感兴趣的:(python爬虫之requests)