如何使用漂亮的python将Div中的所有细节导出到excel/csv?
我是Soup/python的新手,我正在尝试查找数据。 我的网站结构是这样的。 如果我打开Divclass如何使用漂亮的python将Div中的所有细节导出到excel/csv?,python,excel,web-scraping,beautifulsoup,export-to-csv,Python,Excel,Web Scraping,Beautifulsoup,Export To Csv,我是Soup/python的新手,我正在尝试查找数据。 我的网站结构是这样的。 如果我打开Divclassborder类,它看起来是这样的 我做过这样的事情: for P in soup.find_all('p', attrs={'class': 'bid_no pull-left'}) : print(P.find('a').contents[0]) Div结构看起来像每个页面中大约有10个Div 在这里,我想提取项目、所需数量、投标编号、结束日期。 请帮帮我 <div cl
border类
,它看起来是这样的
我做过这样的事情:
for P in soup.find_all('p', attrs={'class': 'bid_no pull-left'}) :
print(P.find('a').contents[0])
Div结构看起来像每个页面中大约有10个Div
在这里,我想提取项目、所需数量、投标编号、结束日期。 请帮帮我
<div class="border block " style="display: block;">
<div class="block_header">
<p class="bid_no pull-left"> BID NO: <a style="color:#fff !important" href="/showbidDocument/1844736">GEM/2020/B/763154</a></p>
<p class="pull-right view_corrigendum" data-bid="1844736" style="display:none; margin-left: 10px;"><a href="#">View Corrigendum</a></p>
<div class="clearfix"></div>
</div>
<div class="col-block">
<p><strong style="text-transform: none !important;">Item(s): </strong><span>Compatible Cartridge</span></p>
<p><strong>Quantity Required: </strong><span>8</span></p>
<div class="clearfix"></div>
</div>
<div class="col-block">
<p><strong>Department Name And Address:</strong></p>
<p class="add-height">
Ministry Of Railways<br> Na<br> South Central Railway N/a
</p>
<div class="clearfix"></div>
</div>
<div class="col-block">
<p><strong>Start Date: </strong><span>25-08-2020 02:54 PM</span></p>
<p><strong>End Date: </strong><span>04-09-2020 03:00 PM</span></p>
<div class="clearfix"></div>
</div>
<div class="clearfix"></div>
</div>
投标编号:
项目:兼容墨盒
所需数量:8
部门名称和地址:
铁道部
Na
中南部铁路不适用
开始日期:2020年8月25日下午2:54
结束日期:2020年9月4日下午3:00
错误图像
使用和靓汤尝试以下方法。我已经用从网站获取的URL创建了脚本,然后创建了一个动态URL来遍历每个页面以获取数据 脚本到底在做什么:
```python
import requests
from urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
from bs4 import BeautifulSoup as bs
def scrap_bid_data():
page_no = 1 #initial page number
while True:
print('Hold on creating URL to fetch data...')
URL = 'https://bidplus.gem.gov.in/bidlists?bidlists&page_no=' + str(page_no) #create dynamic URL
print('URL cerated: ' + URL)
scraped_data = requests.get(URL,verify=False) # request to get the data
soup_data = bs(scraped_data.text, 'lxml') #parse the scraped data using lxml
extracted_data = soup_data.find('div',{'id':'pagi_content'}) #find divs which contains required data
if len(extracted_data) == 0: # **if block** which will check the length of extracted_data if it is 0 then quit and stop the further execution of script.
break
else:
for idx in range(len(extracted_data)): # loops through all the divs and extract and print data
if(idx % 2 == 1): #get data from odd indexes only because we have required data on odd indexes
bid_data = extracted_data.contents[idx].text.strip().split('\n')
print('-' * 100)
print(bid_data[0]) #BID number
print(bid_data[5]) #Items
print(bid_data[6]) #Quantitiy Required
print(bid_data[10] + bid_data[12].strip()) #Department name and address
print(bid_data[16]) #Start date
print(bid_data[17]) #End date
print('-' * 100)
page_no +=1 #increments the page number by 1
scrap_bid_data()
```
使用和靓汤尝试以下方法。我已经用从网站获取的URL创建了脚本,然后创建了一个动态URL来遍历每个页面以获取数据 脚本到底在做什么:
```python
import requests
from urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
from bs4 import BeautifulSoup as bs
def scrap_bid_data():
page_no = 1 #initial page number
while True:
print('Hold on creating URL to fetch data...')
URL = 'https://bidplus.gem.gov.in/bidlists?bidlists&page_no=' + str(page_no) #create dynamic URL
print('URL cerated: ' + URL)
scraped_data = requests.get(URL,verify=False) # request to get the data
soup_data = bs(scraped_data.text, 'lxml') #parse the scraped data using lxml
extracted_data = soup_data.find('div',{'id':'pagi_content'}) #find divs which contains required data
if len(extracted_data) == 0: # **if block** which will check the length of extracted_data if it is 0 then quit and stop the further execution of script.
break
else:
for idx in range(len(extracted_data)): # loops through all the divs and extract and print data
if(idx % 2 == 1): #get data from odd indexes only because we have required data on odd indexes
bid_data = extracted_data.contents[idx].text.strip().split('\n')
print('-' * 100)
print(bid_data[0]) #BID number
print(bid_data[5]) #Items
print(bid_data[6]) #Quantitiy Required
print(bid_data[10] + bid_data[12].strip()) #Department name and address
print(bid_data[16]) #Start date
print(bid_data[17]) #End date
print('-' * 100)
page_no +=1 #increments the page number by 1
scrap_bid_data()
```
如果您尝试过某项服务,请先将其发布在此处,然后只有其他人能够在这方面为您提供帮助。此外,您的问题描述含糊不清,很难理解最重要的添加网站URL@Vini a无法找到具有相同类别“col block”的文本@Vin请帮助如果您尝试了一些内容,请先在此处发布,然后只有人能够在这方面帮助您,而且您的问题描述很模糊,很难理解最重要的添加网站URL@Vini a无法找到具有相同类别“col block”的文本@Vin请帮助获取错误URL=''+str(页码)#创建动态URL名称错误:名称“page_no”未定义编辑正在我的末尾工作确保代码缩进正确,所有导入都可供参考我还添加了一个输出图像。我正在使用pycharmAdded实际代码图像逐行检查,看看您在哪里犯了错误。一旦它开始为您工作,将其标记为已接受。ThanksCheck图像,我刚刚上传并与您的代码进行比较。我敢肯定你犯了更多的错误,因为它在我这边完美无缺地发挥着作用,正如预期的那样。我建议你检查每一行图片。获取错误URL=''+str(页码)#创建动态URL名称错误:名称“page_no”未定义编辑正在我的末尾工作确保代码缩进正确,所有导入都可供参考我还添加了一个输出图像。我正在使用pycharmAdded实际代码图像逐行检查,看看您在哪里犯了错误。一旦它开始为您工作,将其标记为已接受。ThanksCheck图像,我刚刚上传并与您的代码进行比较。我敢肯定你犯了更多的错误,因为它在我这边完美无缺地发挥着作用,正如预期的那样。我建议你检查一下你的每一行图片。