香港云主机最佳企业级服务商!

ADSL拨号VPS包含了中国大陆(联通,移动,电信,)

中国香港,国外拨号VPS。

当前位置:云主机 > python >

电信ADSL拨号VPS
联通ADSL拨号VPS
移动ADSL拨号VPS

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


时间:2022-01-11 10:28 作者:admin


会用到的功能的简单介绍

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':"www.mmjpg.com" }all_url = 'http://www.mmjpg.com/' '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 href =# >内容</a>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 requestsfrom bs4 import BeautifulSoupimport 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':#伪造一个访问来源 "http://www.mzitu.com/100260/2"    }    content = requests.get(url, headers=headers)    return content#设置启动函数def main():  Mzitu = mzitu() ##实例化  Mzitu.all_url('http://www.mzitu.com/all') ##给函数all_url传入参数 main()

(责任编辑:admin)






帮助中心
会员注册
找回密码
新闻中心
快捷通道
域名登录面板
虚机登录面板
云主机登录面板
关于我们
关于我们
联系我们
联系方式

售前咨询:17830004266(重庆移动)

企业QQ:383546523

《中华人民共和国工业和信息化部》 编号:ICP备00012341号

Copyright © 2002 -2018 香港云主机 版权所有
声明:香港云主机品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究

云官方微信

在线客服

  • 企业QQ: 点击这里给我发消息
  • 技术支持:383546523

  • 公司总台电话:17830004266(重庆移动)
  • 售前咨询热线:17830004266(重庆移动)