问题描述
下面是我在这里编写的程序,并保存在main.py中(它循环播放特定页面,打印它循环播放的页面并返回csv中的数据),由 main.exe 当我在cmd中运行 main.exe 时,strong> pyinstaller 不会打印任何内容。我已经通过--onefile main.exe
命令创建了.exe文件
import concurrent
import functools
import concurrent.futures
import requests
from urllib3.exceptions import InsecureRequestWarning
import csv
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
from bs4 import BeautifulSoup as bs
def download_page(session,page_no):
url = 'https://bidplus.gem.gov.in/bidlists?bidlists&page_no=' + str(page_no)
print('URL created: ' + url)
resp = session.get(url,verify=False)
return resp.text
def scrap_bid_data():
NUMBER_THREADS =20 # number of concurrent download requests
with open('GEMconcurrent.csv','w',newline='') as out_file:
f = csv.writer(out_file)
f.writerow(['Bidnumber','Items','Quantity','Department','Enddate','pageNumber'])
with requests.Session() as session:
page_downloader = functools.partial(download_page,session)
with concurrent.futures.ThreadPoolExecutor(max_workers=NUMBER_THREADS) as executor:
pages = executor.map(page_downloader,range(1,901 ))
page_no = 0
for page in pages:
page_no += 1
soup_data = bs(page,'lxml')
extracted_data = soup_data.find('div',{'id': 'pagi_content'})
if extracted_data is None or len(extracted_data) == 0:
print('No data at page number',page_no)
print(page)
break
else:
for idx in range(len(extracted_data)):
if (idx % 2 == 1):
bid_data = extracted_data.contents[idx].text.strip().split('\n')
bidno = bid_data[0].split(":")[-1]
items = bid_data[5].split(":")[-1]
qnty = int(bid_data[6].split(':')[1].strip())
dept = (bid_data[10] + bid_data[12].strip()).split(":")[-1]
edate = bid_data[17].split("End Date:")[-1]
f.writerow([bidno,items,qnty,dept,edate,page_no])
scrap_bid_data()
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)