python爬虫笔记

准备:requests、bs4(解析html)/re(解析html)

import requests,re
from bs4 import BeautifulSoup
#下载文本并读取为pandas的dataframe
a=requests.get('http://*****:****/20170115-all.txt')
data=(a.content).decode('gbk','ignore')
temp_d=StringIO(data.replace('\t',','))
df=pd.read_csv(temp_d,sep=',',header=None)
#下载图片
a=requests.get(r'http://www.dataguru.cn/data/attachment/common/cf/140046k3e1e0z22ayeykyx.jpg')
file=open(r'D:\baidu\Desktop\a.jpg','wb')
file.write(a.content)
file.close()

#使用beautifulsoup解析html
a=requests.get('http://f.dataguru.cn/forum-138-2.html')
soup=BeautifulSoup((a.content).decode('gbk','ignore'))
titlelist=[x.contents[0] for x in soup.find_all('a',οnclick="atarget(this)")]
#使用re解析html
a=requests.get('http://f.dataguru.cn/forum-138-2.html')
r='class="s xst">(.*)</a>'
tittlelist=re.findall(r,(a.content).decode('gbk','ignore'))
 
 
使用beautifulsoup时,先获取网页html文本,创建beautifulsoup对象,该对象的find_all()方法有多个用于筛选的参数

对应这段文本,find_all('a')是筛选出所有名称为a的标签,find_all(οnclick="atarget(this)")是筛选出所有包含onclick属性且其值为"atarget(this)"的标签,
筛选出的结果是包含一系列标签的list,list[0]即为第一个标签,list[0].contents是<a href=..........>与</a>之间的那段文本,list[0]['href']是该标签href项对应的值

使用re时,先获取网页文本,再用正则表达式直接匹配模式,re.findall(r,text),其中r为模式字符串,根据正则表达式规则编写,可在http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html查阅规则,结果为包含一系列文本的list。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值