我想解析页面中的一些信息,但是有一些麻烦,因为我无法解析没有id或class的内容。 现在我有带有图像的div标签和一些文本(数字),我需要获取此数字,但是此div仅具有样式标签,我无法使用此样式标签,因为他总是在更改。
我有类似游戏网站拍卖之类的东西,试图解析商品名称,价格和链接。 但是现在我只能得到名字。
im试图为父类的div查找所有“ a”。 我试图找到hrefs 我试图按样式查找
def rshp_parse (base_url, headers):
session = requests.Session()
request = session.get(base_url, headers=headers)
if request.status_code == 200:
soup = bs(request.content, 'html.parser')
divs = soup.find_all('div', class_={'shop-search-row'})
for div in divs:
title = div.find('span').text
price = div.find('div')
href = div.find('a', class_={'champions_container'})['href']
# href = soup.find('div', style='color:#FFFFFF;text-decoration:none')
HTML
<div style="display:inline-block;width:15%;line-height:50px;vertical-align:top;white-space: nowrap;">
<img src="/assets/rpc/shard.png" style="width:20px">35,000
</div>
35,000-我需要什么
<a href="/market/auction/1227124" target="_blank" style="color:#FFFFFF;text-decoration:none">
和此链接
答案 0 :(得分:1)
您可以按以下方式重建“表”。通过数据框,您可以使用常规的pandas语法访问任何元素。
import requests
from bs4 import BeautifulSoup as bs
import pandas as pd
import numpy as np
r = requests.get('https://www.roshpit.ca/market/browse')
soup = bs(r.content, 'lxml')
results = []
for row in soup.select('.shop-search-row'):
name = row.select_one('.item_image + span').text
seller = row.select_one('div:nth-child(3)').text.strip()
bid = row.select_one('div:nth-child(4)').text.strip()
buyout = row.select_one('div:nth-child(5)').text.strip()
ends = row.select_one('div:nth-child(6)').text.strip()
listing = [name, seller, bid, buyout, ends]
results.append(listing)
df = pd.DataFrame(results, columns = ['name', 'seller' , 'bid' , 'buyout' , 'ends'])
df = df.replace(r'^\s*$', np.nan, regex=True)
df.buyout = df.buyout.str.replace(',', '').astype(float)
df[df['name'].str.contains("Hammer") & (df["buyout"] < 50000)]