简单网页爬虫

从网页爬取信息要注意以下几点:

(1)在浏览器中查看网站的源代码

(2)使用Pythonn读文本文件

(3)正则表达式的应用

(4)先抓大再抓小

(5)使用Python写csv文件

简单例子:爬取百度贴吧一个热门贴子

#简单网页爬虫

import re
import csv
#打开存储网页源文件的文件
with open('E:/python/source.txt','r') as f:
    fr=f.read()

#获取只想要的信息
result_list=[]

source_list=re.findall('"l_post l_post_bright j_l_post clearfix  " (.*?)p_props_tail props_appraise_wrap',fr,re.S)

#从大的信息里获取发帖人,发帖内容,发帖时间
for each in source_list:
    result={}
#获取发帖人的昵称获取,因为看它的界面代码target="_blank">这个出现的频率很高,所以p_author_name j_user_card(.*?)target="_blank">(.*?)<
#这样才获取得准确。
    a_list={}
    a_list=re.findall('p_author_name j_user_card(.*?)target="_blank">(.*?)<',each,re.S)
    result['username']=a_list[0][1]
#获取发帖内容 ,因为发帖内容可能是图片,因为获取的内容是中文,所以图片是为空的所以要replace
    result['content']=re.findall('class="d_post_content j_d_post_content " style="display:;">(.*?)<',each,re.S)[0].replace('            ','')
    #获取发帖时间,因为span class="tail-info">后面内容也有38楼什么的,所以这里这样获取,话题是今年国庆所以时间都是2019年
    result['reply_time']=re.findall('span class="tail-info">(2019.*?)<',each,re.S)[0]
    result_list.append(result)
    
#写入csv文件
with open('E:/python/tieba.csv','w') as f:
    writer=csv.DictWriter(f,fieldnames=['username','content','reply_time'])
    writer.writeheader()
    writer.writerows(result_list)

第一次完成爬取网页信息,涉及到的知识点有正则表达式,文件的读写,如有错漏,请各位大神指正,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值