1 #coding=utf-8 2 import io 3 import requests 4 from bs4 import BeautifulSoup 5 for i in range(1,50): 6 url=requests.get('http://www.budejie.com/text/%s' % i) #使用request.get请求url 7 soup = BeautifulSoup(url.text, 'html.parser')#使用parser解析 8 all_desc=soup.find_all('div',class_='j-r-list-c-desc') 9 for j in all_desc: 10 f=open(r'C:\Users\Administrator\Desktop\Python\qiushibaike\baisi.txt','r+',encoding='utf-8') #写入 11 f.read() #追加数据前要先读取yix 12 f.write(j.get_text()) 13 f.close() 14 print("已爬取第%s页" % i) 15 i+=1
爬取白死不得姐的段子,并且写入到指定目录下的文本中。重点,使用parser解析获取到的url,然后通过soup.find_all()找到对应的标签,all_desc里面是多个<div><a>1231</a><div>,如何获取123123,我们通多for循环遍历,j.get_text().获取具体文本。在写入的时候先打开open(' ',' ',' ')三个参数,第一个为目录下的文件地址,第二个为操作方式' r+'是持续写入,但是后面写入的内容会替换掉前面的内容,解决办法是,在写入之前我们先读取f.read(),这样后写入的会被添加在末尾,不会覆盖。 第三个参数非常重要具体使用方法参见上一篇 http://www.cnblogs.com/wangcongsuibi/p/7941294.html