先上代码
import requests
from lxml import etree
import openpyxl
import time
import random
#新建workbook对象
wb=openpyxl.Workbook()
#创建正在操作的表
sheet = wb.active
#设置表头
sheet.append(['股票名称','股票代码','最新价','涨跌幅','涨跌额','成交量','成交额','今开','昨收','最高','最低'])
#遍历全站单页链接并解析数据
for p in range(0,100):
url="https://hq.gucheng.com/HSinfo/XSHE/?en_hq_type_code=XSHE&sort_field_name=px_change_rate&sort_type=desc&page="+str(p)
headers={
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"
}
html=requests.get(url=url,headers=headers).text
time.sleep(random.randint(1,3))
tree=etree.HTML(html)
GP_name=tree.xpath("//tbody/tr/td[1]/a/text()")
GP_number=tree.xpath("//tbody/tr/td[2]/a/text()")
NEW_price=tree.xpath("//tbody/tr/td[3]/text()")
UP_DOWN=tree.xpath("//tbody/tr/td[4]/text()")
Rise_fall=tree.xpath("//tbody/tr/td[5]/text()")
Turnover_one=tree.xpath("//tbody/tr/td[6]/text()")
Turnover_two=tree.xpath("//tbody/tr/td[7]/text()")
day=tree.xpath("//tbody/tr/td[8]/text()")
yesterday=tree.xpath("//tbody/tr/td[9]/text()")
hightly=tree.xpath("//tbody/tr/td[10]/text()")
lowly=tree.xpath("//tbody/tr/td[11]/text()")
# 将数据添加进列表
datas=[]
for j in range(0,len(UP_DOWN)):
data=[GP_name[j],GP_number[j],NEW_price[j],UP_DOWN[j],Rise_fall[j],
Turnover_one[j],Turnover_two[j],day[j],yesterday[j],hightly[j],lowly[j]]
datas.append(data)
for s in datas:
sheet.append(s)
wb.save('100页股票数据.xlsx')
目标网址:
https://hq.gucheng.com/HSinfo/XSHE/?en_hq_type_code=XSHE&sort_field_name=px_change_rate&sort_type=desc&page=3
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210401170234587.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjQ1Nzk0Ng==,size_16,color_FFFFFF,t_70)
这个网站跟房产排行一样也是没有动态加载,所以也是没啥难度,但数据用来做大数据练习还是不错的