玖富钱包分享专题

Requests 与 Beautiful Soup 入门

2017-03-29  本文已影响26人  编码员LHF

Requests 与 Beautiful Soup 入门

一 安装

安装 Requests

pip3 install requests

安装 beautifulsoup

pip3 install beautifulsoup4

pip3 install lxml

pip3 install html5lib

二 请求网页

使用requests.get请求网页

r = requests.get("http://lt.cjdby.net/thread-2375411-1-1.html")

r.text是网页的内容

可以打印出来看看,不过这里我们就不打印了,比较长

把这个内容传到beautifulsoup中

soup = BeautifulSoup(r.text, 'html.parser')

soup是一个 BeautifulSoup 对象

这样我们就可以轻松获取网页中所需要的东西了

例如

print(soup.prettify())

按照标准缩进格式结构输出

soup.title.name

获取网页头的名字

其中有一些有趣的东西比如img

print(soup.find_all('img'))

这样我们便获取到了全部带img标签的

想要获取其中的图片地址就这样

for link in soup.find_all('img'):

print(link.get('src'))

如果想全部下载则这样

if img.startswith('http'):

r = requests.get(img, stream=True)

with open('pics/' + str(i) + '.jpg', 'wb') as fd:

for chunk in r.iter_content():

fd.write(chunk)

我们下载了一些图片到本地的文件夹pics下

一个最简单最基础的爬虫就做完了

但是这个缺少控制单元,其中有不少错误,下次再改进

三 完整代码

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

import requests

from bs4 import BeautifulSoup

r = requests.get("http://lt.cjdby.net/thread-2375411-1-1.html")

soup = BeautifulSoup(r.text, 'html.parser')

print(soup.prettify())

print(soup.title)

print(soup.title.name)

print(soup.find_all('img'))

for i, link in enumerate(soup.find_all('img')):

# print(link.get('src'))

img = link.get('src')

print(img)

if img.startswith('http'):

r = requests.get(img, stream=True)

with open('pics/' + str(i) + '.jpg', 'wb') as fd:

for chunk in r.iter_content():

fd.write(chunk)

上一篇下一篇

猜你喜欢

热点阅读