准备: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。