爬取糗事百科
来源:互联网 发布:mac 大容量网盘 编辑:程序博客网 时间:2024/06/08 04:15
这是一个简单爬虫
打开糗事百科首页https://www.qiushibaike.com/
拉到最下面点击下一页,观察url变化
由此可以构造生成url的函数
def getUrls(self,pages): url1 = 'https://www.qiushibaike.com/text/page/' for i in range(1,pages): url = url1 + str(i) self.urls.append(url)
我们选择一个内容,右击鼠标点击检查
可以发现所有的糗事内容都包含在'div',attrs = {'class':'col1'}
然后再找这个标签下面所有的'div',attrs={'class':'content'}
之后遍历取出每个标签里面的<span></span>
里的内容即可
全部代码如下
(这里为了测试只爬取了5页内容)
from bs4 import BeautifulSoupimport requestsclass JokeItem(object): author = None content = Noneclass GetJoke(object): def __init__(self): self.urlBase = 'https://www.qiushibaike.com/text/' self.urls = [] self.item = [] self.getUrls(5) self.spider(self.urls) def getHTMLText(self,url): r = requests.get(url) r.raise_for_status() r.encoding = r.apparent_encoding return r.text # def getPages(self): # html = self.getHTMLText(self.urlBase) # soup = BeautifulSoup(html,'html.parser') def getUrls(self,pages): url1 = 'https://www.qiushibaike.com/text/page/' for i in range(1,pages): url = url1 + str(i) self.urls.append(url) def spider(self,urls): for url in urls: htmlContent = self.getHTMLText(url) soup = BeautifulSoup(htmlContent,'lxml') anchorTag = soup.find('div',attrs = {'class':'col1'}) #tags = anchorTag.find('span') tags = anchorTag.find_all('div',attrs={'class':'content'}) for tag in tags: item = JokeItem() item.author = tag.find('span').getText() # item.content = tag.find('h2').getText() self.item.append(item) # print(soup.encode('GBK', 'ignore')) print(tag.find('span').getText())if __name__ == '__main__': g = GetJoke()
阅读全文
0 0
- 爬取糗事百科
- 爬取糗事百科
- 爬取糗事百科
- 爬取糗事百科
- 爬取糗事百科
- PHP爬取糗事百科首页糗事
- [Python]爬取糗事百科
- 爬取糗事百科段子
- 简单爬取糗事百科
- 爬虫爬取糗事百科
- python 爬取糗事百科
- python爬取糗事百科
- 糗事百科段子爬取
- 爬取糗事百科数据
- python爬取糗事百科
- python3 爬取糗事百科
- python3糗事百科爬取
- 正则爬取糗事百科
- HDOJ 1014 Uniform Generator
- JS字符串截取函数slice(),substring(),substr()的区别
- 关于Android中的各种Dialog
- Android logger日志和ButterKnife使用
- 对象的建立和释放
- 爬取糗事百科
- 在MyEclipse中使用JUnit4进行单元测试
- mybatis之 自定义插入数据主键ID
- 使用安卓小部件显示列表清单的杀手锏(一)
- Python中数据类型
- Linux动态库和静态库
- 使用安卓小部件显示列表清单的杀手锏(二)
- 二叉搜索树(BST)的两个元素被错误地交换。 恢复树,而不改变它的结构。
- Rhyme/Java 泛型<T>很详细教程