python抓取数据
想要做数据分析师就要知道如何将网页上的数据获取。
比如我要去获取http://pic.netbian.com/4kdongman/index_2.html这个网页里所有的图片。
- 首先电脑里应该先有安装python和配置好python的环境变量。
- 然后我要先建一个文件夹,用来存我抓取到的图片,这个文件夹要建在和我要写python代码的py文件同一个目录里。
- 然后将代码写到我建好的getimages.py中并保存。
#导入模块
import requests
#找网址
url='http://pic.netbian.com/4kdongman/index_2.html'
res =requests.get(url)
res.encoding='gbk'
from bs4 import BeautifulSoup
html=BeautifulSoup(res.text,'html.parser')
#检查 找到图片所在的列表,并找到列表的类名
parent=html.find('ul',class_='clearfix')
#找到列表中的图片
images=parent.find_all('img')
from urllib import request
for each in images:
#找到图片的网址
img_url='http://pic.netbian.com'+each.attrs['src']
#print(img_url)
name=each.attrs['alt']
#print(name)
#将图片存到images文件夹中
request.urlretrieve(img_url,f'imagess/{name}.jpg')
- 然后在这个目录顶端输入cmd进入到运行窗口。
- 然后再运行窗口里写入 python getimages.py 然后回车,这样我就把这个网页的图片扣下来存到我的imagess文件夹中了。
如果要抓多页的数据的话就在 import requests(导入模块)和找网址之间加个循环(注意循环以下代码全都要tab或四个空格缩进一下)↓↓↓
#要抓取的页数
all=15
#从第一页开始循环,一直到第十五页
for pageNum in range(1,all+1):
然后在要抓取的网页链接的.html前面的数字改成{pageNum}
这样就可以疯狂的抓取到了15页的所有图片啦!