JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

Python数据分析之数据采集:使用3个线程采集电子商务网站数据

wys521 2025-03-28 22:38:38 精选教程 9 ℃ 0 评论


《大数据和人工智能交流》头条号向广大初学者新增C 、Java 、Python 、Scala、javascript 等目前流行的计算机、大数据编程语言,希望大家以后关注本头条号更多的内容。


使用python编写3个线程同时采集商品“新品上架”的信息:


一、页面参考信息

页面部分代码如下:

大牌狂降价,三折直送

大学老师开网店

黑眼圈推荐,美白不停

瘦身狂潮风,修形之选

大牌狂降价,三折直送

大学老师开网店

黑眼圈推荐,美白不停

瘦身狂潮风,修形之选

大牌狂降价,三折直送

大学要求老师开网店

黑眼圈推荐,美白不停

瘦身狂潮风,修形之选

大牌狂降价,三折直送

大学老师开网店

黑眼圈推荐,美白不停

瘦身狂潮风,修形之选

黑眼圈推荐,美白不停

瘦身狂潮风,修形之选

大牌狂降价,三折直送


二、参考代码

from bs4 import BeautifulSoup

import threading # 导入线程库

import time

# 打开文件

with open('index.html', encoding="GB2312") as data:

content = data.read()

soup = BeautifulSoup(content, 'html.parser')

# 得到数据

datas = soup.find_all('div', attrs={'id': 'dome1'})

labels = datas[0].find_all('dl')

# 爬取数据

def print_label(threadName, labels):

for label in labels:

time.sleep(i // 10)

info = label.find_all('dd')

print("线程%d获取到数据:=====%s\n"%(threadName,info[0].get_text()))

threads = []

# 创建线程对象

for i in range(3):

split = int(len(labels) / 3)

if i == 2:

# 创建新线程并添加到线程列表

threads.append(threading.Thread(target=print_label, args=(i, labels[split * i:])))

else:

threads.append(threading.Thread(target=print_label, args=(i, labels[split * i:split * (i + 1)])))

# 运行线程

for th in threads:

th.start()

# 等待线程退出

for th in threads:

th.join()

print("finished")


本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表