爬虫-怎么爬静态网站

爬静态网站主要分为两部分:

  1. 爬静态网站的文字
  2. 爬静态网站的图片

[TOC]

爬文字

思路

  1. requests模块得到网站的HTML
  2. BeautifulSoup模块得到HTML的正则文本
  3. find或者find_all函数从正则文本中得到自己想要的
  4. repalce去除不需要的字符

源代码

1234567891011121314151617181920
# 使脚本可以识别中文# 爬网站:http://www.hbrchina.org/

import requestsfrom bs4 import BeautifulSoup# 调用需要的模块if __name__ == '__main__':	req = requests.get ('http://www.hbrchina.org/2019-02-18/7150.html')   # 得到网站的HTML	req.encoding = req.apparent_encoding	#获取文本原来编码,使两者编码一致才能正确显示	html = req.text	bf = BeautifulSoup(html,'html.parser')  # 把HTML文件转为正则文件(我的理解是文本文件)	body = bf.body	texts = body.find_all ('div',{'class':'article-content'})  # 用find_all函数找到 这样的div文件,其class是article-content	print(texts[0].text.replace('xa0'*8,'nn'))  # 用replace函数提出所有的字符、空格等

可以看到的结果

爬图片

思路

  1. 用requests模块得到网站的HTML
  2. 用BeautifulSoup得到HTML的正则文本
  3. 用find函数从正则文本中得到自己想要的,比如关键词img
  4. 利用urllib模块下载
  5. 利用for语句下载所有图片

源代码

12345678910111213大专栏  爬虫-怎么爬静态网站">1415161718192021

import requests,urllibfrom bs4 import BeautifulSoup

if __name__ == '__main__':	rep = requests.get('https://darerd.github.io/2019/03/21/%E9%9A%8F%E6%83%B3-%E6%96%B0%E9%9B%B6%E5%94%AE%E4%BC%81%E4%B8%9A%E2%80%9C%E2%80%9C%E6%99%BA%E8%83%9C%E2%80%9D%E6%9C%AA%E6%9D%A5/')	rep.encoding = rep.apparent_encoding	html = rep.text	bs = BeautifulSoup(html,'html.parser')	img = bs.find_all('img')	# 在bs正则文件中找到所有 带有img标签的结果	x=1	for i in img :    # 利用for语句得到每一个图片的src		imgsrc = i.get('src')    # 从img中找到图片的下载链接,src		urllib.request.urlretrieve(imgsrc,'./%s.jpg' %x)    # 利用urllib模块去下载图片		x=x+1		print ('正在下载: %d '%x)

爬虫时必须会用网页源代码

以爬图片为例:

这是我们要爬的网站:[https://darerd.github.io/2019/03/21/随想-新零售企业““智胜”未来/]

打开网站后(我用的Chrome浏览器),键盘快捷键F12,即可打开网站的调试模式,效果如下:

右侧就是网站的源代码,可以用来爬

如果需要快速定位到某一部分的代码所在位置,我们可以鼠标右键,选择检查,如下图所示:

如果我们要快速定位某图片所在的代码位置,演示如下:

用这种方法观察每一张图片的源码:

它们的写法都是非常类似的,如下:

1
<img src="http://upload.hbrchina.org/2019/0213/1550028457604.jpg" alt="1550028961(1)">

src是图片的下载地址,alt是图片的便签,每一张图片都在img语句中

所以我们只要得到所有的img语句,然后从img语句中得到所有的src链接,就可以下载图片了。

每一种爬虫程序都类似,找到要爬部分的特点,然后调用相应的模块。

对于小白,难度就在于怎么样找到要爬部分的特点



以上

原文地址:https://www.cnblogs.com/lijianming180/p/12041548.html

时间: 2024-07-30 22:14:10

爬虫-怎么爬静态网站的相关文章

python爬虫:爬取网站视频

python爬取百思不得姐网站视频:http://www.budejie.com/video/ 新建一个py文件,代码如下: #!/usr/bin/python # -*- coding: UTF-8 -*- import urllib,re,requests import sys reload(sys) sys.setdefaultencoding('utf-8') url_name = [] #url name def get():     #获取源码     hd = {"User-Age

PHP写的爬虫,爬指定网站页面上的各种图片

打算用php实现一个爬虫,这是爬指定页面的图片的一段程序,其他的部分还没调试好,先把这个放上来 1 <?php 2 $string=file_get_contents("http://www.baidu.com"); 3 echo 'size:'.strlen($string)."</br>"; 4 $length=strlen($string); 5 searchImg($string,$length); 6 7 8 9 function sea

网络爬虫(爬取网站图片,自动保存本地)

事先申明一点,这个人品没有什么问题,只是朋友发一段python源码,再这里分享大家. 1 import requests 2 from lxml import html 3 import os 4 from multiprocessing.dummy import Pool as ThreadPool 5 6 def header(referer): 7 headers = { 8 'Host': 'i.meizitu.net', 9 'Pragma': 'no-cache', 10 'Acce

如何使用robots禁止各大搜索引擎爬虫爬取网站

ps:由于公司网站配置的测试环境被百度爬虫抓取,干扰了线上正常环境的使用,刚好看到每次搜索淘宝时,都会有一句由于robots.txt文件存在限制指令无法提供内容描述,于是便去学习了一波 1.原来一般来说搜索引擎爬取网站时都会,先读取下robots.txt文件,并依照里面所设定的规则去爬取网站(当然是指没用登录限制的页面) 2.下面我们就来说一说如何设置robots.txt文件 1).robots.txt文件必须是放在文件根目录上: 例如: ├─admin │  └─templates │    

【python爬虫】根据查询词爬取网站返回结果

最近在做语义方面的问题,需要反义词.就在网上找反义词大全之类的,但是大多不全,没有我想要的.然后就找相关的网站,发现了http://fanyici.xpcha.com/5f7x868lizu.html,还行能把"老师"-"学生","医生"-"病人"这样对立关系的反义词查出来. 一开始我想把网站中数据库中存在的所有的词语都爬出来(暗网爬虫),但是分析了url的特点: http://fanyici.xpcha.com/5f7x86

第一个爬虫:爬糗事百科笑话

前排提示: Python 3.5 没有分布式队列,没有查重,没有Scrapy-Redis框架,没有效率 参考资料(前排拜谢); 网友静觅 CSDN专栏 Jecvay Notes 知乎大神,言简意赅 第一步:能爬就行 import urllib import urllib.request url = "http://news.dbanotes.net" html = urllib.request.urlopen(url) data = html.read().decode('UTF-8'

如何让爬虫对你的网站情有独钟

做好seo的朋友都知道收录量对于一个网站的重要程度,没有收录你有再好的文章也无济于事,正如如今的一句话:互联网行业是酒香也怕巷子深. 网站收录量是与百度蜘蛛爬取网站的频率相关的,所以我们可以判断大概率提升爬虫的抓取量就可以提升网站的收录量. 那么,如何让爬虫对你的网站情有独钟? 1.避免死链接 网站访客或搜索引擎无法通过指定的链接打开页面.打不开网站时,自然会减少网站的客户体验.如果某个网站频繁出现链接无法打开或者访问速度很慢,首先是网站的浏览量会不断下降,其次是搜索引擎的网络爬虫程序也会慢慢的

[Python爬虫] Selenium爬取新浪微博客户端用户信息、热点话题及评论 (上)

一. 文章介绍 前一篇文章"[python爬虫] Selenium爬取新浪微博内容及用户信息"简单讲述了如何爬取新浪微博手机端用户信息和微博信息. 用户信息:包括用户ID.用户名.微博数.粉丝数.关注数等. 微博信息:包括转发或原创.点赞数.转发数.评论数.发布时间.微博内容等. 它主要通过从文本txt中读取用户id,通过"URL+用户ID" 访问个人网站,如柳岩: http://weibo.cn/guangxianliuya 因为手机端数据相对精简简单,所以采用输

用JAVA制作一个爬取商品信息的爬虫(爬取大众点评)

很多企业要求利用爬虫去爬取商品信息,一般的开发模型如下: for i=1;i<=最大页号;i++ 列表页面url=商品列表页面url+?page=i(页号) 列表页面=爬取(列表页面url) 商品链接列表=抽取商品链接(列表页面)  for 链接 in 商品链接列表: 商品页面=爬取(链接) 抽取(商品页面); 这样的模型看似简单,但是有一下几个问题: 1)爬虫没有线程池支持. 2)没有断点机制. 3)没有爬取状态存储,爬取商品网站经常会出现服务器拒绝链接(反问次数过多),导致一旦出现 拒绝链接