python爬取steam市场数据

  • 用python写了个爬虫,爬取csgo中AK47红线的交易数据并保存最终的结果
import csv
import requests
import re

url='https://steamcommunity.com/market/listings/730/AK-47%20%7C%20Redline%20%28Field-Tested%29'
headers={
            'user-agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Mobile Safari/537.36',
            }

response=requests.get(url,headers=headers)

result=re.search('<script.*?line1=(.*?);.*?</script>',response.text,re.S)  
#匹配表格的信息,价格为美元,返回的类型为字符串
path=r'C:\Users\Administrator\Desktop\python\ak47list.txt'

with open(path,'w',encoding='utf-8') as f:
    f.write(result.group(1))
    
file=open(path)
file_read=file.read()

table=str.maketrans('','','":+[]')#删除字符串中的“ : + []
file_translate=file_read.translate(table)

lst=file_translate.split(',')#以逗号为分隔符,将字符串转换为列表

list_time=[]
list_price=[]
list_num=[]
#将时间、价格、数量三个信息分别存入三个list
i=0
j=0
while i < len(lst):       
    list_time.insert(j,lst[i])
    list_price.insert(j,lst[i+1])
    list_num.insert(j,lst[i+2])
    i=i+3
    j=j+1
#创建csv文件,并将数据写入
with open('ak47list.csv','a') as csvfile:
   writer=csv.writer(csvfile)
   writer.writerow(['time','price','number'])
   for i in range(len(list_time)):
       writer.writerow([list_time[i],list_price[i],list_num[i]])
Python爬虫可以用来抓取网站上的数据,包括Steam市场的信息。要爬取Steam市场,你需要使用像BeautifulSoup、Scrapy这样的库来解析HTML和执行网络请求。以下是一个简单的步骤概述: 1. **安装必要的库**: 首先确保你已经安装了`requests`(用于发送HTTP请求)、`lxml`(或`html.parser`)(解析HTML)、以及可能的`Scrapy`(如果用于更复杂的爬虫项目)。 ```bash pip install requests lxml # 如果使用Scrapy pip install scrapy ``` 2. **获取网页源代码**: 使用`requests.get()`获取Steam市场的页面HTML。 ```python import requests url = 'https://store.steampowered.com/search/?sort_by=global_sales&l=english' response = requests.get(url) html_content = response.text ``` 3. **解析HTML**: 使用BeautifulSoup或其他库解析HTML内容,提取你需要的数据,如商品名称、价格、评价等。 ```python from bs4 import BeautifulSoup soup = BeautifulSoup(html_content, 'lxml') items = soup.find_all('div', class_='search_result_item') # 查找商品列表元素 ``` 4. **数据处理**: 为每个商品创建一个字典或对象,存储相关信息,并存储到CSV、JSON或数据库中。 ```python def extract_data(item): name = item.find('h3').text price = item.find('.price').text # ...其他字段提取 return {'name': name, 'price': price} data_list = [extract_data(item) for item in items] ``` 5. **遵守网站规则**: 确保你的爬虫遵守Steam的使用政策,通常这意味着不频繁访问同一页面,避免使用代理IP,以及可能的用户代理设置。 6. **错误处理**: 考虑处理可能出现的网络错误、解析错误,以及Steam可能实施的反爬策略。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值