主要流程分为:
爬取、整理、存储
1.其中用到几个包,包括
requests 用于向网站发送请求,并获得网页代码
BeautifulSoup4 用于处理获得的网页代码,提取有效信息
pandas 用于存储信息
其中在to_excel(‘docname.xlsx’)时,可能去要另外的包 openpyxl
|
2.以爬取新浪网址中各个新闻的责任编辑为例子
可以按照倒推的方式确定def的functions
获取到了当条新闻下的网页网址后,如何获得责任编辑?
d
|
ii) 根据主页面如何获得各条新闻网页的网址
某行文件是在json中发现,因此通过comments=requests.get(‘url’)再
jd=json.loads(comments.text.strip(‘var data=‘))
jd=[‘result’][‘count’][‘total’] ==>这里为字典中的字典,可以从网页检查元素的preview中查看
==>可转化为字典
其中要恢复成字典,左右两头多出了什么就要通过strip()去除
有些需要分左右侧分别删除则通过lstrip()与rstrip(),即left和right
==>for ent in ~:
ent[‘url’]
***) soup.select()到的所需元素在同一个类中,则可以使用contents[0]区分
***)time与str间的转换
|
***) 将list[]各元素连接
|
***) 对于有多页的网址,则需要找到page对应部分改为{},
然后通过format()进行替换
|
3. 使用pandas存储数据,其中是DataFrame()功能函数
|
其中list的格式为
|
4. 存储数据库
df=pandas.DataFrame(list)
print
(df.head(20)) #显示前20条信息
# df.to_excel(
'news.xlsx'
) #转存为excel格式,名字为news.xlsx
with sqlite3.connect(
'news.sqlite'
)
as
db:
# 存入news.sqlite文件中的news表格
df.to_sql(
'news'
,con=db)
# 读取/查询news表格并将数据赋值给df2
df2=pandas.read_sql_query(
'SELECT * FROM news'
,con=db)