继上一篇爬取豆瓣电影top250之后,这篇博客还是利用requests库和BeautifulSoup进行网络爬虫的练习,这次爬取的对象是中国天气网。
说明
1.用到的库:requests,BeautifulSoup,re。其中,requests库用于获取网页内容,BeautifulSoup用于网页解析,re正则表达式库用于对爬取内容进行匹配和搜索。
2.正常情况下BeautifulSoup就可以完成网页解析,但是中国天气网现在的风向条目变成了两种风向,是在不知道怎么用BeautifulSoup去解析,只好调用re库把两个风向给检索出来。
3.不同城市有不同城市的代码,可以根据城市的不同替换URL就好;也可以把城市代码也到数据库中,根据输入城市名字找到对应的城市代码后再进行爬取。但是这里只想知道自己城市的天气,因此URL是用西安作为例子写的。
脚本如下
'''
@Author: Guo Yingwei
@Date: 2019-07-09 10:03:55
@E-mail: willgyw@126.com
@Description: crawl weather aroune 7 days of a certain city from China Weather.
'''
import requests
from bs4 import BeautifulSoup
import re
def get_page(url):
try:
kv = {
'user-agent':'Mozilla/5.0'}
r = requests.get(url,headers = kv)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
return '错误'
def parse_page(html, return_list):
soup = BeautifulSoup(html, 'html.parser')
day_list = soup.find('ul', 't clearfix').find_all('li')