在写爬虫之前做了一些准备工作,首先学习了html及css。接着直接上手requests和BeautifulSoup过程中遇到不少的坑。也慢慢熟悉了爬虫的整个流程。这篇文章1号就开始写了,工作原因中间搁置了一个星期,今天上手感觉生疏了很多,还是要多加练习。这次的作业“爬去糗事百科”,主要参考向右奔跑老师的文章。
在爬之前的准备工作:
1、首先找出页面中数据的规律,页面中发布的内容都放在class="article block untagged mb15"标签下
2、获取每条数据中详细的信息分布如下:
先贴一下代码:
#! /usr/bin/python
# -*- coding:utf-8 -*-
# auther: Captain_mj
import requests
from bs4 import BeautifulSoup
user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
headers = { 'User-Agent' : user_agent} #请求头
html = requests.get('http://www.qiushibaike.com/')
soup = BeautifulSoup(html.text)
divs = soup.select('div .article.block.untagged.mb15') #从第一层标签定位
for div in divs:
author = div.select('div > a > h2')
age = div.select('div')[0].text
print(age)
content = div.select('a > div > span')[0].text
print (content)
funny = div.select('div.stats > span.stats-vote > i')[0].text
print (funny)
comment = div.select('div.stats > span.stats-comments > a > i')[0].text
print (comment)
上面的代码是老师写的代码,看明白后自己写了一遍。但是在判断作者性别的时一直没有判断出来。
贴一下判断性别的方法,各位帮我看看是什么地方有误(万分感谢):
写一遍下来,还有几个问题没有弄明白,先记录下来(路过的朋友也帮忙指点下):
1、代码中.text是什么作用,暂时还不明白
2、soup = BeautifulSoup(html, 'lxml') #lxml,为什么这么用没有弄明白
3、趴下来的数据不知该如何进行存储(还在学习)
4、这里只记录了Beautifulsoup爬出的方法,现还没有明白Xpath的用法
在这几点弄明白后再继续更新