编程小白艾雪儿 发表于 2022-10-28 16:54:20

Python爬虫获取元素

网站元素如图,求问如何爬取股票代码000001


headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.52'}
def downHtml(url):
    res=requests.get(url,headers=headers)
    #头等信息
    html=res.text
    return html
html = downHtml("http://quote.eastmoney.com/stocklist.html#sz")

soup = BeautifulSoup(html, 'html.parser', from_encoding='gbk')
div = soup.find('div', attrs={'class': 'listview full'})
lis = div.find_all('td')
names = []
for li in lis:
    a = li.find('a')
    name = a.text
    names.append(name)

fcage 发表于 2022-10-28 23:06:52

这个不能直接请求网页,这是动态请求的
你查看页面源代码就知道,里面没有你要的数据

你要打开开发者工具去抓包,直接搜你要的那个东西,可以找到你实际要请求的链接,它是一串JSON数据

zhangjinxuan 发表于 2022-10-29 05:29:41

楼上正解

zyr1 发表于 2022-10-29 20:05:30

楼上厉害

1molHF 发表于 2022-10-29 21:18:39

楼上厉害

ll.pc 发表于 2022-10-30 22:58:52

可以用xpath或者css

枭哓笑 发表于 2022-10-31 00:07:37

谢谢楼主分享

cflying 发表于 2022-10-31 22:50:33

本帖最后由 cflying 于 2022-10-31 23:15 编辑

如果不想麻烦的话,通过浏览器模拟来爬出来,然后pandas也基本可以达到这个效果
这网站前几年都直接是静态表格,改成动态应该也是1年内的事情
from playwright.sync_api import sync_playwright
import pandas as pd

with sync_playwright() as p:
    browser = p.chromium.launch()
    context = browser.new_context()
    page = context.new_page()
    page.goto('http://quote.eastmoney.com/center/gridlist.html')
    tables=pd.read_html(page.content())
    print(tables)

平凡之路1314 发表于 2022-11-1 05:55:49

谢谢楼主分享

wangyanren 发表于 2022-11-1 10:55:57

只想领个币

diffuse 发表于 2022-11-1 22:09:16

谢谢楼主分享
页: [1]
查看完整版本: Python爬虫获取元素