抓取时移至下一页

时间:2019-02-20 03:34:00

标签: python html web-scraping beautifulsoup

在抓取网页并更改日期格式时移至下一页

url_list是网址列表,其中一个是 http://www.moneycontrol.com/company-article/cadilahealthcare/news/CHC#CHC 我发现要转到不同的年份和不同的页面,有一个href代码,但是我似乎无法使用它。这是从第1页提取链接的代码。我想在所有可用的年份和页面中都这样做。

此外,当我从html中提取日期时,其格式为 [最后更新:2019年2月7日下午IST |资料来源:Moneycontrol.com] 我要用mm / dd / yy格式的日期,我该怎么做呢?

for urls in url_list:
    html = requests.get(urls)
    soup = BeautifulSoup(html.text,'html.parser') # Create a BeautifulSoup object 

       # Retrieve a list of all the links and the titles for the respective links
       #word1,word2,word3 = "US","USA","USFDA"

    sub_links = soup.find_all('a', class_='arial11_summ')
    for links in sub_links:
        sp = BeautifulSoup(str(links),'html.parser')  # first convert into a string
        tag = sp.a
          #if word1 in tag['title'] or word2 in tag['title'] or word3 in tag['title']:
        category_links = Base_url + tag["href"]
        List_of_links.append(category_links)
        time.sleep(3)

我想做的是先刮掉第一页,然后再移动到下一页,依此类推,在特定年份刮掉可用页面后,代码将移至下一年。请解释一下我该怎么做。

1 个答案:

答案 0 :(得分:2)

移至下一页:

提取日期:子字符串仅获取日期时间,然后像这样解析时间和时区

我使用pytz更新了设置的时区

input = 'Feb 07, 2019 03:05 PM IST'
str_time = input[:len(input) - 4]
str_timezone = input[len(input) - 3:]

datetime_object = datetime.strptime(str_time, '%b %d, %Y %I:%M %p')
if str_timezone == 'IST':
    # base on https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
    # assume it's Indian/Mauritius
    tz = pytz.timezone('Indian/Mauritius')
else:
    tz = pytz.timezone('UTC')

output = tz.localize(datetime_object)
# test
print(output.strftime('%X %x %z'))