简单的爬虫
爬糗百,需要的工具:BeautifulSoup,安装自己百度
先从爬一页开始:
首先,要伪装成浏览器,简单的是添加一个headers,我把它封装成一个函数:
def getHTML(url):
headers = {'User-Agent': 'User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'}
req = urllib.request.Request(url, headers=headers)
return urllib.request.urlopen(req)
接着开始爬,我只爬text的
crawl_url = 'https://www.qiushibaike.com/text'
res = BeautifulSoup(getHTML(crawl_url),'html.parser',from_encoding='utf-8')
找出固定的标签:div class="content",放入contentext中
contenttext = res.find_all(name="div",attrs={"class":"content"})
最后写入txt文档中: 控制每行字数100,添加序号:
i = 1
for li in contenttext:
f.write(str(i)+'. ')
i += 1
for lj in range(0,len(li.get_text().strip()),100):
f.write(li.get_text().strip()[lj:lj+100]+'\n')
f.write('\n')
f.close()
最后补充:
要爬多页时,写个循环控制页数,需要注意的是,程序可能频繁发起请求而返回503错误,如果这样导致程序停止了那就功亏一篑了,所以想办法解决这问题,我的想法是每次请求后sleep一段时间,缺点就是时间长.