‘壹’ 用python爬取网站的时候,其中head中是什么内容
网站的一些信息,比如标题,关键词,描述,版本,网站logo等
‘贰’ python3爬取网页,报错AttributeError: 'NoneType' object has no attribute 'xpath'
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36'}
data = requests.get(url,headers=headers).text
加一个头部就行了
‘叁’ python 怎样爬去网页的内容
用python爬取网页信息的话,需要学习几个模块,urllib,urllib2,urllib3,requests,httplib等等模块,还要学习re模块(也就是正则表达式)。根据不同的场景使用不同的模块来高效快速的解决问题。
最开始我建议你还是从最简单的urllib模块学起,比如爬新浪首页(声明:本代码只做学术研究,绝无攻击用意):
这样就把新浪首页的源代码爬取到了,这是整个网页信息,如果你要提取你觉得有用的信息得学会使用字符串方法或者正则表达式了。
平时多看看网上的文章和教程,很快就能学会的。
补充一点:以上使用的环境是python2,在python3中,已经把urllib,urllib2,urllib3整合为一个包,而不再有这几个单词为名字的模块。
‘肆’ 怎样用python爬取网页
#coding=utf-8
importurllib
importre
#网络贴吧网址:https://tieba..com/index.html
#根据URL获取网页HTML内容
defgetHtmlContent(url):
page=urllib.urlopen(url)
returnpage.read()
#从HTML中解析出所有jpg的图片的URL
#从HTML中jpg格式为<img...src="xxx.jpg"width='''>
defgetJPGs(html):
#解析jpg图片URL的正则表达式
jpgReg=re.compile(r'<img.+?src="(.+?.jpg)"')
#解析出jpg的URL列表
jpgs=re.findall(jpgReg,html)
returnjpgs
#用图片url下载图片并保存成制定文件名
defdownloadJPG(imgUrl,fileName):
urllib.urlretrieve(imgUrl,fileName)
#批量下载图片,默认保存到当前目录下
defbatchDownloadJPGs(imgUrls,path='../'):#path='./'
#给图片重命名
count=1
forurlinimgUrls:
downloadJPG(url,''.join([path,'{0}.jpg'.format(count)]))
print"下载图片第:",count,"张"
count+=1
#封装:从网络贴吧网页下载图片
defdownload(url):
html=getHtmlContent(url)
jpgs=getJPGs(html)
batchDownloadJPGs(jpgs)
defmain():
url="http://www.meituba.com/dongman/"
download(url)
if__name__=='__main__':
main()
‘伍’ Python网页解析库:用requests-html爬取网页
Python 中可以进行网页解析的库有很多,常见的有 BeautifulSoup 和 lxml 等。在网上玩爬虫的文章通常都是介绍 BeautifulSoup 这个库,我平常也是常用这个库,最近用 Xpath 用得比较多,使用 BeautifulSoup 就不大习惯,很久之前就知道 Reitz 大神出了一个叫 Requests-HTML 的库,一直没有兴趣看,这回可算歹着机会用一下了。
使用 pip install requests-html 安装,上手和 Reitz 的其他库一样,轻松简单:
这个库是在 requests 库上实现的,r 得到的结果是 Response 对象下面的一个子类,多个一个 html 的属性。所以 requests 库的响应对象可以进行什么操作,这个 r 也都可以。如果需要解析网页,直接获取响应对象的 html 属性:
不得不膜拜 Reitz 大神太会组装技术了。实际上 HTMLSession 是继承自 requests.Session 这个核心类,然后将 requests.Session 类里的 requests 方法改写,返回自己的一个 HTMLResponse 对象,这个类又是继承自 requests.Response,只是多加了一个 _from_response 的方法来构造实例:
之后在 HTMLResponse 里定义属性方法 html,就可以通过 html 属性访问了,实现也就是组装 PyQuery 来干。核心的解析类也大多是使用 PyQuery 和 lxml 来做解析,简化了名称,挺讨巧的。
元素定位可以选择两种方式:
方法名非常简单,符合 Python 优雅的风格,这里不妨对这两种方式简单的说明:
定位到元素以后势必要获取元素里面的内容和属性相关数据,获取文本:
获取元素的属性:
还可以通过模式来匹配对应的内容:
这个功能看起来比较鸡肋,可以深入研究优化一下,说不定能在 github 上混个提交。
除了一些基础操作,这个库还提供了一些人性化的操作。比如一键获取网页的所有超链接,这对于整站爬虫应该是个福音,URL 管理比较方便:
内容页面通常都是分页的,一次抓取不了太多,这个库可以获取分页信息:
结果如下:
通过迭代器实现了智能发现分页,这个迭代器里面会用一个叫 _next 的方法,贴一段源码感受下:
通过查找 a 标签里面是否含有指定的文本来判断是不是有下一页,通常我们的下一页都会通过 下一页 或者 加载更多 来引导,他就是利用这个标志来进行判断。默认的以列表形式存在全局: ['next','more','older'] 。我个人认为这种方式非常不灵活,几乎没有扩展性。 感兴趣的可以往 github 上提交代码优化。
也许是考虑到了现在 js 的一些异步加载,这个库支持 js 运行时,官方说明如下:
使用非常简单,直接调用以下方法:
第一次使用的时候会下载 Chromium,不过国内你懂的,自己想办法去下吧,就不要等它自己下载了。render 函数可以使用 js 脚本来操作页面,滚动操作单独做了参数。这对于上拉加载等新式页面是非常友好的。
‘陆’ 如何用 python 爬取简单网页
测试环境:Windows10+Python3.5.2
打开命令提示符(管理员),输入pip3 install requests安装requests模块
importrequests,re
#获取网页
r=requests.get('http://www.bilibili.com')
#正则表达式获取标题
res=re.search(r'<title>([^<]*)</title>',r.text)
print(res.group(1))
>>>哔哩哔哩弹幕视频网-(゜-゜)つロ干杯~-bilibili
‘柒’ python爬取headers中general的request url
python内有一个cookielib的包,可以获取cookie。第一次访问都是不带cookie的~~
下面是利用firebug进行测试:
由于之前访问过,所以在浏览器上存有该网站的cookie,将其清除。
此时再次访问就是真正意义上的第一次访问,此时再进行访问,抓包如下:
网站在对第一次访问的请求中会返回set-cookie,浏览器会将set-cookie进行存储,以后再进行访问时就会带上cookie值。so~第一次访问请求头是没有cookie的,如果你的有,那就是你之前访问过,cookie值一直保留在浏览器内。
‘捌’ request库用python3怎么伪装header爬取知乎
可以尝试安装一个简单实用的库:fake-useragent
网址链接:https://pypi.python.org/pypi/fake-useragent
下载后,在命令行里面输入:pip install fake-useragent就可以了
尝试输入下面代码:
from fake_useragent import UserAgent
ua = UserAgent()
#ie浏览器的user agent
print(ua.ie)
‘玖’ 零基础学python(1)——爬取房天下网站信息
一、认识网页
网页分为三个部分:HTML(结构)、CSS(样式)、JavaScript(功能)。
二、爬取网站信息入门
1、Soup = BeautifulSoup (html, 'lxml'),使用beautifulsoup来解析网页。
2、使用 CSS selector来复制网页元素的位置。
三、爬取房天下网站信息
1、导入requests和beautifulsoup
2、定义函数spider_ftx,把所需要爬取的信息都定义出来
3、调用函数spider_ftx
4、翻页爬取二手房信息
由于每页最多只能显示40条信息,观察每一页网址的变化规律,写一个循环调用的语句,把全部100页的信息全都爬取下来。
四、小结:
目前只能爬取到网站的100页信息,网站为了反爬,设置了可浏览的页面量100。要想爬取网站的所有信息,可以通过分类去获取,但是如何用python实现呢,请看下集。
‘拾’ 如何利用python爬取网页内容
利用python爬取网页内容需要用scrapy(爬虫框架),但是很简单,就三步
定义item类
开发spider类
开发pipeline
想学习更深的爬虫,可以用《疯狂python讲义》