功能:
爬取网站信息
1、文字
2、图片
3、视频

一、安装库(如果没有安装的话)
pip install urllib3
在这里插入图片描述
pip install re
pip install requests
在这里插入图片描述
在这里插入图片描述
pip install lxml

二、网页抓取
1、分析url,以笑话大全网站为例,不同的页面只是1.html的数字不一样
在这里插入图片描述
在这里插入图片描述
2、查找要爬网站的请求包
右键鼠标–检查
选择network
刷新
2.html-header
找到请求包,复制出来
在这里插入图片描述
3、复制要爬的url

在这里插入图片描述
4、编写代码
爬取一页
填入请求包和要爬的url

import requests

#请求包定义
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36 Edg/88.0.705.81'
}
#请问网页
htmlurl = 'http://www.17989.com/xiaohua/2.htm'
html = requests.get(htmlurl, headers = headers)

#打印爬取的页面
print(html.text)

爬取10页

import requests

#请求包定义
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36 Edg/88.0.705.81'
}
#请问网页
for i in range(10):
	htmlurl = 'http://www.17989.com/xiaohua/{}.htm'.format(i)
	html = requests.get(htmlurl, headers = headers)

	#打印爬取的页面
	print(html.text)

三、解析网页
1、分析网页
鼠标右键网页—查看网页源代码
在这里插入图片描述
看网页文字看源代码对应位置

2、解析
查看标签
右键鼠标–检查
在这里插入图片描述
3、解析
需要解析工具,这里用BeautifulSoup以及lxml

import requests
from bs4 import BeautifulSoup

#请求包定义
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36 Edg/88.0.705.81'
}
#请问网页
htmlurl = 'http://www.17989.com/xiaohua/1.htm'
html = requests.get(htmlurl, headers = headers)

#打印爬取的页面
#print(html.text)

#解析
soup = BeautifulSoup(html.text, "lxml")

print(soup.title)#标题获取
print(soup.head)#获取头
print(soup.a)#获取a标签

print(soup.find_all('a'))#获取一个页面的所有a标签

4、定位标签
soup.select()
soup.find_all()
现在浏览器的筛选器定位
class用点".",id用井号"#"
根据class和id定位 中间用.和空格表示子

print(soup.select('title'))#获取title
print(soup.select('a'))#获取a
print(soup.select('head>titile'))#获取title
print(soup.find_all('title'))#获取title
print(soup.select('.articlelist .hd'))#获取文章class
print(soup.find_all('.articlelist .hd'))#获取文章class
print(soup.select('.articlelist .hd'))#获取一个页面的所有a标签
#print(soup.find_all(True, class='hd'))#获取class
print(soup.find_all('p', id='rightad'))#获取p标签id
print(soup.select('a[href="www.17989.com"]'))#获取
print(soup.find_all('a',href='www.17989.com'))#获取

在这里插入图片描述

import requests
from bs4 import BeautifulSoup

#请求包定义
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36 Edg/88.0.705.81'
}
#请问网页
htmlurl = 'http://www.17989.com/xiaohua/2.htm'
html = requests.get(htmlurl, headers = headers)
html.encoding = 'utf-8'#修改中文显示规则
#打印爬取的页面
#print(html.text)

#解析
soup = BeautifulSoup(html.text, "lxml")
title = soup.select('.articlelist .hd')
print(title)
print(title)
print(soup.pre.string)#获取标签内容"<pre><!--Hey, buddy--></pre>" # 表示网页内容

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐