【Python爬虫】分析网页真实请求

Python020

【Python爬虫】分析网页真实请求,第1张

1、抓取网页、分析请求

2、解析网页、寻找数据

3、储存数据、多页处理

翻页有规律:

很多网址在第一页时并没有变化,多翻下一页后规律就出来,比如 豆瓣第一页 和 豆瓣第三页

发现start为40,limit=20,所以猜测start=0就是第一页,每页显示20条数据,对于第三页显示的参数可以一个个删除验证,可以减去不必要的参数, 但是删除前一定要做好数据的对比

(1) 文本框输入后产生一个请求,如常见的登录、注册页面

Referer:表示当前请求的来源

Request URL:表示实际请求地址

翻页后URL不变,该如何寻找请求?

如: http://www.zkh360.com/zkh_catalog/3.html

通过对比可以发现网站是通过pageIndex参数控制翻页的,?表示连接

接下来用抓包工具分析下 ,从第四页开始看URL就知道了,但是前面几面需要查看请求的参数,这里偏多,就切换到【Inspectors--Webforms】选项,看的比较直观

类似的网站还有 今日头条 ,有兴趣的朋友可以去研究下

(可通过获取max_behot_time的值而改变as和cp)

用Beautiful Soup这类解析模块:

Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖析树(parse tree);

它提供简单又常用的导航(navigating),搜索以及修改剖析树的操作;

用urllib或者urllib2(推荐)将页面的html代码下载后,用beautifulsoup解析该html;

然后用beautifulsoup的查找模块或者正则匹配将你想获得的内容找出来,就可以进行相关处理了,例如:

from BeautifulSoup import BeautifulSoup

html = '<html><head><title>test</title></head><body><p>test body</p></body></html>'

soup = BeautifulSoup(html)

soup.contents[0].name

# u'html'

soup.comtents[0].contents[0].name

# u'head'

head = soup.comtents[0].contents[0]

head.parent.name

# u'html'

head.next

# u'<title>test</title>

首先,你去爬取一个网站,

你会清楚这个网站是属于什么类型的网站(新闻,论坛,贴吧等等)。

你会清楚你需要哪部分的数据

你需要去想需要的数据你将如何编写表达式去解析。

你会碰到各种反爬措施,无非就是各种百度各种解决。当爬取成本高于数据成本,你会选择放弃。

你会利用你所学各种语言去解决你将要碰到的问题,利用各种语言的client组件去请求你想要爬取的URL,获取到HTML,利用正则,XPATH去解析你想要的数据,然后利用sql存储各类数据库。