1下载和安装

请参阅其他教程。

2 Requsts简介

requests is an Apache 2 licensed http library,written in python,for human beings .

python ' s standard urllib 2 module provides most of the http capabilities you need,But the API is was built for a different time-and a different

requests takes all of the work out of python http-making Your integration with web services seamless . there ' s no need to manually add quad Your

-开始

3获取web源代码(Get方法)

直接导入源代码修改直接导入Http标头源代码:

import requestshtml=reque(')print

修改Http标头:

Import requestsimport re #下面的三行是编码转换功能import sys reload(sy(' utf-8 ')# hea是我们自己创建的包含user-agent的词典。

#让目标网站误以为本程序是浏览器,并非爬虫。#从网站的Requests Header中获取。【审查元素】hea = {'User-Agent':'Mozilla (Windows NT 6.3; Win64; x64) AppleWebKi (KHTML, like Gecko) Chrome Safari;} html = reque(';,headers = hea) = 'utf-8' #这一行是将编码转为utf-8否则中文会显示乱码。print

4 带正则表达式的提取

<pre name="code" class="python">import requestsimport re#下面三行是编码转换的功能import sysreload(sy("utf-8")#hea是我们自己构造的一个字典,里面保存了user-agent。#让目标网站误以为本程序是浏览器,并非爬虫。#从网站的Requests Header中获取。【审查元素】hea = {'User-Agent':'Mozilla (Windows NT 6.3; Win64; x64) AppleWebKi (KHTML, like Gecko) Chrome Safari;} html = reque(';,headers = hea) = 'utf-8' #这一行是将编码转为utf-8否则中文会显示乱码。 #此为正则表达式部分。找到规律,利用正则,内容就可以出来title = re.findall('color:#666666;">(.*?)</span>',,re.S)for each in title: print each chinese = re.findall('color: #039;">(.*?)</a>',,re.S)for each in chinese: print each<pre>

5 向网页提交数据(Post方法)

第二幅图:

此处构造表单,就是下面代码中data的部分,用的字典。为什么要改字典里面的page数字?因为,目标网站采用异步加载方式,不是一次性加载你所需要爬取的全部内容,所以要一页一页的爬取(改数)。

代码中爬取的是目标网址的公司名称,title。

代码展示(含原理解释):

#-*-coding:utf8-*-import requestsimport re #需要使用Chrome浏览器中的:审查元素->Network#很多信息,如url、page、提交方法等都必须从里得到 #原来的目标网址,但不能作为目标url# url = '; #Post表单向此链接提交数据url = ';template=false' #get方法比较# html = reque(url).text# print html #注意这里的page后面跟的数字需要放到引号里面。#page的数据可以改动data = { 'entities_only':'true', 'page':'2'} html_post = reque(url,data=data)title = re.findall('"card-title">(.*?)</div>',)for each in title: print each

原文链接地址:;depth_1-utm_source=di

相关推荐