网络爬虫列表之间提取(Web crawler to extract in between the l

2019-10-21 13:52发布

我用Python写一个网络爬虫。 我希望让所有的内容之间的<li> </li>标记。例如:

<li>January 13, 1991: At least 40 people <a href ="......."> </a> </li>

所以在这里我想:

a。)中提取日期戳和将其转换成DD / MM / yyyy格式

湾)人前的数量。

soup = BeautifulSoup(page1)
h2 =soup.find_all("li")
count = 0
while count < len(h2):
    print (str(h2[count].get_text().encode('ascii', 'ignore')))
    count += 1

我只能现在提取文本。

Answer 1:

获取与该文本.text , 分割字符串 由第一次出现的: ,转换的日期字符串datetime使用strptime()指定现有%B %d, %Y格式,然后使用其格式化为字符串strftime()指定所需%d/%m/%Y格式,并提取使用数字At least (\d+)的正则表达式,其中(\d+)是一个捕获组 ,将匹配一个或多个数字:

from datetime import datetime
import re

from bs4 import BeautifulSoup


data = '<li>January 13, 1991: At least 40 people <a href ="......."> </a> </li>'
soup = BeautifulSoup(data)

date_string, rest = soup.li.text.split(':', 1)

print datetime.strptime(date_string, '%B %d, %Y').strftime('%d/%m/%Y')
print re.match(r'At least (\d+)', rest.strip()).group(1)

打印:

13/01/1991
40


文章来源: Web crawler to extract in between the list