Python 在网站中,使用Beautifulsoup的文章时间爬行不起作用
我的项目的目标是使用Beautifulsoup功能通过页面对所有web文章信息进行爬网。 文章信息是文章的标题、时间、正文。 但是,正如您所看到的,文章时间文本位于Python 在网站中,使用Beautifulsoup的文章时间爬行不起作用,python,pandas,beautifulsoup,web-crawler,Python,Pandas,Beautifulsoup,Web Crawler,我的项目的目标是使用Beautifulsoup功能通过页面对所有web文章信息进行爬网。 文章信息是文章的标题、时间、正文。 但是,正如您所看到的,文章时间文本位于标记后面。 我一整天都在尽力。但是,我不能解决这个问题。 如何解决这个问题 import urllib.request import urllib.parse from bs4 import BeautifulSoup import pandas as pd import requests i = input('Start page?
import urllib.request
import urllib.parse
from bs4 import BeautifulSoup
import pandas as pd
import requests
i = input('Start page? : ')
k = input('End page? : ')
pagenum = int(i)
lastpage = int(k)
count = int(i)
news_info = pd.DataFrame(columns=('Title', 'Datetime', 'Article'))
idx = 0
while pagenum<lastpage + 1:
url = f'http://www.koscaj.com/news/articleList.html?page={pagenum}&total=72698&box_idxno=&sc_section_code=S1N2&view_type=sm'
html = urllib.request.urlopen(url).read()
soup = BeautifulSoup(html, 'html.parser')
links = soup.find_all(class_='list-titles')
print(f'-----{count}page result-----')
for link in links:
news_url = "http://www.koscaj.com"+link.find('a')['href']
news_link = urllib.request.urlopen(news_url).read()
soup2 = BeautifulSoup(news_link, 'html.parser')
title = soup2.find('div', {'class':'article-head-title'})
date = soup2.find('div',{'class':'info-text'})
datetime = date[1]
article = soup2.find('div', {'id':'article-view-content-div'})
news_info.loc[idx] = [title, datetime, article]
idx += 1
pagenum += 1
count += 1
print('Complete')
导入urllib.request
导入urllib.parse
从bs4导入BeautifulSoup
作为pd进口熊猫
导入请求
i=输入('起始页?:')
k=输入('结束页?:')
pagenum=int(i)
lastpage=int(k)
计数=int(i)
news_info=pd.DataFrame(列=('Title','Datetime','Article'))
idx=0
当pagenum时,您必须访问此标记中的内部子项
假设变量date
包含:
<div class="info-text">
<ul class="...">
<li><i class="fa fa-user-o fa-fw"></i> 전문건설신문</li>
<li><i class="fa fa-clock-o fa-fw"></i> 승인 2020.11.25 18:24</li>
...
- 전문건설신문李>
- 승인 2020.11.25 18:24
...
您可以通过以下方式访问日期:
date.find_all('li')[1]。text
这将是:
승인 2020.11.25 18:24
您可以在中阅读有关访问儿童的更多信息。ya不清楚您的问题是什么。我想你是在追求这个。还请注意,您还需要获取标题和文章的文本(因为您在代码中没有这样做):
导入urllib.request
导入urllib.parse
从bs4导入BeautifulSoup
作为pd进口熊猫
导入请求
i=输入('起始页?:')
k=输入('结束页?:')
pagenum=int(i)
lastpage=int(k)
计数=int(i)
news_info=pd.DataFrame(列=('Title','Datetime','Article'))
idx=0
虽然你的问题不清楚。到底是什么问题?你有什么问题?有错误吗?非常感谢!我解决了这个问题。我是Python的初学者。现在,我正在学习Python阅读书籍。我很幸运找到了这个网站!
import urllib.request
import urllib.parse
from bs4 import BeautifulSoup
import pandas as pd
import requests
i = input('Start page? : ')
k = input('End page? : ')
pagenum = int(i)
lastpage = int(k)
count = int(i)
news_info = pd.DataFrame(columns=('Title', 'Datetime', 'Article'))
idx = 0
while pagenum<lastpage + 1:
url = f'http://www.koscaj.com/news/articleList.html?page={pagenum}&total=72698&box_idxno=&sc_section_code=S1N2&view_type=sm'
html = urllib.request.urlopen(url).read()
soup = BeautifulSoup(html, 'html.parser')
links = soup.find_all(class_='list-titles')
print(f'-----{count}page result-----')
for link in links:
news_url = "http://www.koscaj.com"+link.find('a')['href']
news_link = urllib.request.urlopen(news_url).read()
soup2 = BeautifulSoup(news_link, 'html.parser')
title = soup2.find('div', {'class':'article-head-title'})
if title:
title = soup2.find('div', {'class':'article-head-title'}).text
else:
title = ''
date = soup2.find('div',{'class':'info-text'})
try:
datetime = date.find('i', {'class':'fa fa-clock-o fa-fw'}).parent.text.strip()
except:
datetime = ''
article = soup2.find('div', {'id':'article-view-content-div'})
if article:
article = soup2.find('div', {'id':'article-view-content-div'}).text
else:
article = ''
news_info.loc[idx] = [title, datetime, article]
idx += 1
pagenum += 1
count += 1
print('Complete')