**
python爬虫小案例
**
网址:www.phb123.com/renwu/fuhao…
整体代码
# -*- coding: utf-8 -*-
# @Time : 2022-05-06 10:51
# @Author : 相信光*_*
# @FileName: 爬虫.py
# @Software: PyCharm
# @Blog :http://blog.csdn.net/u010105243/article/
def loaddata(url):#读取数据
from bs4 import BeautifulSoup
import requests
#设置请求
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36'
}
f = requests.get(url,headers = headers)#获取内容
soup = BeautifulSoup(f.content,"lxml")#解析内容
ranktable = soup.find_all('table',class_="rank-table")[0]#获取榜单
trlist = ranktable.find_all('tr')#获取tr
trlist.pop(0)
persionlist = []#列表
for tr in trlist:
#存取数据
persion = {}
persion['num'] = tr.find_all('td')[0].string#编号
persion['name'] = tr.find_all('td')[1].string#名称
persion['money'] = tr.find_all('td')[2].string#财产
persion['company'] = tr.find_all('td')[3].string#企业
persion['country'] = tr.find_all('td')[4].string#国家
persionlist.append(persion)
print("页面"+url+"爬取成功")
return persionlist
# 读取数据
def loadalldata():
alldata = []#新建用来保存数据的列表
for i in range(1,16,1):#遍历榜单
#设置url
url = "http://www.phb123.com/renwu/fuhao/shishi_"+str(i)+".html"
#获取数据
data = loaddata(url)
#保存数据
alldata = alldata + data
return alldata
def savedata(path,persionlist):#保存数据
import xlwt
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('test')
worksheet.write(0, 0, '排名')
worksheet.write(0, 1, '姓名')
worksheet.write(0, 2, '财富')
worksheet.write(0, 3, '企业')
worksheet.write(0, 4, '国家')
#数据写入
for i in range(1,len(persionlist)+1,1):
worksheet.write(i, 0, persionlist[i - 1]['num'])
worksheet.write(i, 1, persionlist[i - 1]['name'])
worksheet.write(i, 2, persionlist[i - 1]['money'])
worksheet.write(i, 3, persionlist[i - 1]['company'])
worksheet.write(i, 4, persionlist[i - 1]['country'])
#保存数据
workbook.save(path)
print("数据保存成功:"+path)
if __name__ == '__main__':
data = loadalldata()
savedata('1.xls',data)
1,确定网站后,按f12进入开发者模式,获得HTML代码
对于想获得的元素区域,ctrl+shift+c,使用鼠标在网页之间移动,相应代码片段会高亮
2,按顺序解释函数
1,loaddata(url)函数
引入bs4和requests包后,
headers是请求头,网站为了防止恶意请求,会有相应的拦截,f12后,在network栏随便找到一个请求头来进行伪装。例如:找到user-agent,复制后,按代码格式使用
user-agent就是请求头
headers = {
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36
}
request请求是封装好的,向其加入参数后,直接请求到该网页。 开始对网页解析,bs4内的beautifulsoup是对元素的捕捉和解析。更推荐re模块的正则表达式(好理解和方便使用)。
2 loadalldata()函数
其实每次的请求都是一个页面,为了可以得到其他页面,我们可以看几个页面来得到规律。
总结之后,可以根据需要,进行相应页面的请求。
3 savedata()函数
将获得的数据存入excel表格中,xlwt库的使用,这里不再进行过多赘述。
3 直接使用
将相应函数在主函数中调用即可。