利用request、beautifulsoup、xml写多线程爬虫
# -*- coding:UTF-8 -*- import requests,time from collections import OrderedDict import threading from bs4 import BeautifulSoup as bp t3 = time.time() ths = [] # 存放线程 def get(num): dic = OrderedDict() n = str(num) data = {'basename':'BASENAME11', 'where':'2PLDYDY1', 'dbpage':n, 'pagecount':'5', 'order':'ORDER1,ORDER2', 'orderbytype':'ASC', 'searchList':'SEARCHLIST11', 'isKz':'0', 'id':'0.40519130290516947'} header1 = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36','Referrer':'http://txl.xxx.cn/xxx/center.do?path=txl_index'} page = requests.post('http://txl.xxx.cn/xxx/dBSearchForTxlAction.do',headers=header1,data=data) # 自定义请求头,这些请求头内容是在浏览器上看到的 t = page.text soup = bp(t,'xml') #使用beautifulsoup解析xml文件,解析html时,将xml改为lxml all_body = soup.find_all('EmailResult') #查找EmailResult标签包含的所有内容,生成一个列表 for info in all_body: print(u'%s'%info.NAME.text.ljust(10,' '),info.FENJI.text.ljust(20,' '),info.SHOUJI.text.ljust(30),info.EMAIL.text.ljust(30),info.ZHIWU.text) # 根据标签查找相应的text文本内容即可 for num in range(75): t1 = threading.Thread(target=get, args=(num,)) ths.append(t1) for t in ths: t.start() for ttt in ths: ttt.join() t4 = time.time() tt = t4 - t3 print(tt)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性