1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > python简单爬虫入库_python用BeautifulSoup库简单爬虫实例分析

python简单爬虫入库_python用BeautifulSoup库简单爬虫实例分析

时间:2024-04-20 04:32:29

相关推荐

python简单爬虫入库_python用BeautifulSoup库简单爬虫实例分析

会用到的功能的简单介绍

1、from bs4 import BeautifulSoup

#导入库

2、请求头herders

headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36','referer':"" }

all_url = '/'

'User-Agent':请求方式

'referer':从哪个链接跳转进来的

3、建立连接

start_html = requests.get(all_url, headers=headers)

all_url:起始的地址,也就是访问的第一个页面

headers:请求头,告诉服务器是谁来了。

requests.get:一个方法能获取all_url的页面内容并且返回内容。

4、解析获取的页面

Soup = BeautifulSoup(start_html.text, 'lxml')

BeautifulSoup:解析页面

lxml:解析器

start_html.text:页面的内容

5、处理获取的页面

all_a = Soup.find('div', class_='pic').find_all('a')[-2]

Soup.find()查找某一个

find_all()查找所有的,返回一个列表

.find('img')['src'] :获取img的src链接属性

class__:获取目标的类名

div/a:类型条件为div/a的

[-2]可以用来去掉最后多匹配的标签,这里表示去掉最后两个a标签

6、获取目标内容

内容

a[i]/get_text():获取第i个a标签里面的内容

7、可能用到的其他功能介绍:

1、文件夹创建与切换

os.makedirs(os.path.join("E:\name", filename))

#在目录E:\name下创建名为filename的文件夹

os.chdir("E:\name\\" + filename)

#切换工作路径到E:\name\filename下

2、文件保存

f = open(name+'.jpg', 'ab')##写入多媒体文件必须要 b 这个参数!

f.write(img.content) ##多媒体文件要是用conctent!

f.close()

案例:爬取妹纸图

import requests

from bs4 import BeautifulSoup

import os

#导入所需要的模块

class mzitu():

def all_url(self, url):

html = self.request(url)##

all_a = BeautifulSoup(html.text, 'lxml').find('div', class_='all').find_all('a')

for a in all_a:

title = a.get_text()

print('------开始保存:', title)

path = str(title).replace("?", '_') ##替换掉带有的?

self.mkdir(path) ##调用mkdir函数创建文件夹!这儿path代表的是标题title

href = a['href']

self.html(href)

def html(self, href): ##获得图片的页面地址

html = self.request(href)

max_span = BeautifulSoup(html.text, 'lxml').find('div', class_='pagenavi').find_all('span')[-2].get_text()

#这个上面有提到

for page in range(1, int(max_span) + 1):

page_url = href + '/' + str(page)

self.img(page_url) ##调用img函数

def img(self, page_url): ##处理图片页面地址获得图片的实际地址

img_html = self.request(page_url)

img_url = BeautifulSoup(img_html.text, 'lxml').find('div', class_='main-image').find('img')['src']

self.save(img_url)

def save(self, img_url): ##保存图片

name = img_url[-9:-4]

img = self.request(img_url)

f = open(name + '.jpg', 'ab')

f.write(img.content)

f.close()

def mkdir(self, path): ##创建文件夹

path = path.strip()

isExists = os.path.exists(os.path.join("E:\mzitu2", path))

if not isExists:

print('建了一个名字叫做', path, '的文件夹!')

os.makedirs(os.path.join("E:\mzitu2", path))

os.chdir(os.path.join("E:\mzitu2", path)) ##切换到目录

return True

else:

print( path, '文件夹已经存在了!')

return False

def request(self, url): ##这个函数获取网页的response 然后返回

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36',

'referer':#伪造一个访问来源 "/100260/2"

}

content = requests.get(url, headers=headers)

return content

#设置启动函数

def main():

Mzitu = mzitu() ##实例化

Mzitu.all_url('/all') ##给函数all_url传入参数

main()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。