python - Python编程在休息后不会继续吗?
问题描述
在我的程序中,如果在 eg.10 的页面上没有找到数据,那么对于其余的页面,11 到 50,它不会进入 else 语句(这应该发生)。我是 python 新手,需要帮助在下面编写的代码中对这个问题进行排序:
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?d=1&page_no=' + str(page_no)
print('URL created: ' + url)
resp = session.get(url, verify=False)
return resp.text
def scrap_bid_data():
NUMBER_THREADS =5 # number of concurrent download requests
with open('GEMconcurrent_1004.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(35, 36 ))
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')
if (len(bid_data)>1):
print(page_no)
if (len(bid_data[8]) > 1):
bidno = bid_data[0].split(":")[-1]
items = bid_data[8].split(":")[-1]
qnty = int(bid_data[9].split(':')[1].strip())
dept = (bid_data[10] + bid_data[15].strip()).split(":")[-1]
edate = bid_data[20].split("End Date:")[-1]
f.writerow([bidno, items, qnty, dept, edate,page_no])
scrap_bid_data()
解决方案
当您想要移出条件(包含它的循环)时使用中断。
更详细的解释在这里https://www.programiz.com/python-programming/break-continue。
我认为您不需要在这里使用 break 。
推荐阅读
- openstack - Openstack Octavia lbaasv2:找不到 lbaasv2 服务插件
- javascript - 使用 JSON.parse() 将 db json 转换为 javascript 对象失败
- reactjs - React App 组件中未终止的 JSX 内容
- ionic-framework - 可执行文件使用无效权利签名 - 0xe8008016
- string - 如何递归编码以比较 LEGv8 中的两个字符串?
- xamarin.ios - LoadingFinished 将在 Xamarin.iOS 中被多次调用
- amazon-web-services - Netregistry 不允许 AWS ACM cname 验证记录
- python - 如何避免将 JSON 数据插入 MongoDB 时出错
- facebook-graph-api - Facebook 的 Open Graph API 的 IP 地址范围是多少
- c# - 使用 Match 计算字符串字符的正则表达式