Python 在网站中,使用Beautifulsoup的文章时间爬行不起作用

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?

我的项目的目标是使用Beautifulsoup功能通过页面对所有web文章信息进行爬网。 文章信息是文章的标题、时间、正文。 但是,正如您所看到的,文章时间文本位于
  • 标记后面。 我一整天都在尽力。但是,我不能解决这个问题。 如何解决这个问题

    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')