我正在尝试从全球速卖通网站上抓取一些数据,但我不知道如何继续。开始手动执行此操作,但我猜这很容易花费我几个小时:/我基本上想提取以下数据集:
(i) 每个国家的订单
图:交易记录
在这里,我的目标是获得一个带有列的 excel:日期(或其他一些唯一标识符) - 买方国家 - 件数。因此,对于图片上的第一个买家,这将类似于“2018 年 3 月 10 日 00:11”-“RU”-“1 件”。然后是 CSV 文件中的大约 100-120 个这些页面(总共大约 1000 个客户)。
任何人都可以帮助我如何在 Python 中进行编码吗?或者关于我可以使用的工具的任何想法?
(ii) 每个子类别的总订单
对于给定的(子)类别,例如“美容与健康 - 保健”(https://www.aliexpress.com/category/200002496/health-care.html?spm=2114.search0103.3.19.696619daL05kcB&site= glo&g=y ) 我想汇总 100 页产品中的所有订单。在图片中,订单以黄色圈出。
图:订单数量的产品
所以输出可能只是这个类别中的订单总数。(这将是超过 100 页的总和,每页 48 个产品)
这在 Python 中是可能的吗?我对 Python 有一些非常基本的经验,但还不足以真正构建这样的东西。
如果有人可以帮助我入门,将不胜感激!
提前非常感谢!
布鲁斯
更新:感谢 Delirious Lettuce,我设法做到了(i)。对于(ii)我已经构建了以下代码,它可以正常工作约 5 页,但在此之后开始省略产品/跳转。这是因为代码吗?或者这可能是因为他们限制从服务器提取太多数据?
import bs4
import csv
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
filename="Dresses.csv"
f=open(filename,"w")
headers="product_ID, orders\n"
f.write(headers)
for p in range(1,100):
my_url='https://www.aliexpress.com/category/200003482/dresses/' + str(p)
+'.html?site=glo&g=y&SortType=total_tranpro_desc&needQuery=n&tag='
#had to split the above link because it did not fit on one line
uClient=uReq(my_url)
page_html=uClient.read()
uClient.close()
page_soup=soup(page_html,"html.parser")
containers=page_soup.findAll("div",{"class":"item"})
for container in containers:
em_order = container.em
order_num = em_order.text
product_ID = container.input["value"]
f.write(product_ID + "," + order_num + "\n")
f.close()