BeautifuSoup库爬取美女图片

爬虫模块(从网页上采集数据 数据放置在网页标签里面)
1.requests2.BeautifuSoup3.urllib4.urllib25.scrapy6.lxml
爬取步骤
1.获取标签的内容
数据 :<div> <title> <a> ....
找到标签里面的内容 soup.div

2.打开网页获取文件的内容
soup.prettify() //打印本地文件的内容

3.html源代码相同标签很多,怎么获取到我想要的那一部分内容
网页名字 class id find:查找标签
e = soup.find("div",class_="a").txt class是关键词 所以要放置下划线

区分点:
find() find_all() 都是查找标签里面的内容 python 3.x print后面要加括号
在python3中,urllib2合并到urllib库中

字符串格式化的作用(为真实的值保留一个位置)

* coding:utf-8 *

from bs4 import BeautifulSoup #从网页抓取数据
import urllib3,urllib.request
x = 0;
urls = ['https://www.buxiuse.com/?page={}'.format(str(i)) for i in range(5,11)]
for url in urls:
def crawl(url): # 模拟浏览器 加上headers
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"}
req = urllib.request.Request(url, headers=headers) # 用地址创建一个request对象
page = urllib.request.urlopen(req, timeout=20) # 打开网页
contents = page.read() # 获取源码
soup = BeautifulSoup(contents, features="lxml")
my_girl = soup.find_all('img')
for girl in my_girl:
link = girl['src']
global x
urllib.request.urlretrieve(link, "image\%s.jpg" % x) # 下载
print("爬取完第" + str(x) + "张")
x += 1
crawl(url)

猜你喜欢

转载自blog.51cto.com/13550695/2457080