Arya

爬虫初探(一)——人生的第一只爬虫~
0x01在经历scrapy怎么也装不上,后来装上也不能用,以及继续在比赛和挖洞中被各路师傅吊打之后 我真的决定要改...
扫描右侧二维码阅读全文
05
2017/03

爬虫初探(一)——人生的第一只爬虫~

0x01

在经历scrapy怎么也装不上,后来装上也不能用,以及继续在比赛和挖洞中被各路师傅吊打之后
我真的决定要改行了!

才怪~

0x02

首先抓包,因为知乎是有防爬机制的,抓到请求包之后,直接copy到代码里
]~P5~%U`{3AT4A7W[)06HYQ.png

(我真的有很认真的码掉我的cookie~)
最开始写这个爬虫的时候,我是用的正则匹配,但是匹配出来的不是很对
最开始的正则表达式"Title">(.*?)</a></h2>

 

但是抓到的东西异常的奇怪,然后放弃了
尝试使用xpath
xpath真的是神器,用过都说好,总比想半天去写正则表达式好太多,接下来直接上代码,不废话了,我是直接写入到一个文本里的

#coding:utf-8
import requests
import re
from lxml import etree
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )

header={
'Host': 'www.zhihu.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
'Accept-Encoding': 'gzip, deflate, br',
'Cookie': '我不会告诉你我的cookie~来打我啊~',
'Connection': 'close',
'Upgrade-Insecure-Requests': '1',
}

html=requests.get('https://www.zhihu.com/',headers=header)
selector=etree.HTML(html.text)

title=selector.xpath('//h2[@class="feed-title"]/a/text()')
f=open(r'G:\pycharm\class2\1.txt','a')

for i in title:
    f.write(i)
f.close()

运行之后可以直接查看文本

HZ9E5Y7`(YOF~A{4UO%3PJN.png

大概就是酱紫了

0x03

关于中间出现的问题,在使用requests.get获取页面的时候,配合使用xpath要记住转为文本格式(感谢al0ne表哥的提示)

还有关于ASCII码的问题,添加

import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )

即可

虽然是个小的不行的程序,但是爬下了首页还是神清气爽

Last modification:January 23rd, 2019 at 10:36 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment