Ⅰ 如何实现爬取多个网页利用requests和beautifulsoup
用beautifulsoup4 resp = urllib.request.urlopen(yoururl).read().decode(“utf-8”) soup = bs4.Beautifulsoup(resp) soup.findall("table", {"width": "550"})[0] 然后做你想做的就行了
Ⅱ 怎么用Python从多个网址中爬取内容
调用 requests 包 , BeautifulSoup4包, 能实现,网页内容写入 excel 不太好看,建议写入 txt 或者 xml。确定要写入 Excel 可以调用 pandas包或者 openpyxl包
Ⅲ 如何利用Python爬虫从网页上批量获取想要的信息
稍微说一下背景,当时我想研究蛋白质与小分子的复合物在空间三维结构上的一些规律,首先得有数据啊,数据从哪里来?就是从一个涵盖所有已经解析三维结构的蛋白质-小分子复合物的数据库里面下载。这时候,手动一个个去下显然是不可取的,我们需要写个脚本,能从特定的网站选择性得批量下载需要的信息。python是不错的选择。
import urllib #python中用于获取网站的模块
import urllib2, cookielib
有些网站访问时需要cookie的,python处理cookie代码如下:
cj = cookielib.CookieJar ( )
opener = urllib2.build_opener( urllib2.HttpCookieProcessor(cj) )
urllib2.install_opener (opener)
通常我们需要在网站中搜索得到我们需要的信息,这里分为二种情况:
1. 第一种,直接改变网址就可以得到你想要搜索的页面:
def GetWebPage( x ): #我们定义一个获取页面的函数,x 是用于呈递你在页面中搜索的内容的参数
url = 'http://xxxxx/xxx.cgi?&' + ‘你想要搜索的参数’ # 结合自己页面情况适当修改
page = urllib2.urlopen(url)
pageContent = page.read( )
return pageContent #返回的是HTML格式的页面信息
2.第二种,你需要用到post方法,将你搜索的内容放在postdata里面,然后返回你需要的页面
def GetWebPage( x ): #我们定义一个获取页面的函数,x 是用于呈递你在页面中搜索的内容的参数
url = 'http://xxxxx/xxx' #这个网址是你进入搜索界面的网址
postData = urllib.urlencode( { 各种‘post’参数输入 } ) #这里面的post参数输入需要自己去查
req= urllib2.Request (url, postData)
pageContent = urllib2.urlopen (req). read( )
return pageContent #返回的是HTML格式的页面信息
在获取了我们需要的网页信息之后,我们需要从获得的网页中进一步获取我们需要的信息,这里我推荐使用 BeautifulSoup 这个模块, python自带的没有,可以自行网络谷歌下载安装。 BeautifulSoup 翻译就是‘美味的汤’,你需要做的是从一锅汤里面找到你喜欢吃的东西。
import re # 正则表达式,用于匹配字符
from bs4 import BeautifulSoup # 导入BeautifulSoup 模块
soup = BeautifulSoup(pageContent) #pageContent就是上面我们搜索得到的页面
soup就是 HTML 中所有的标签(tag)BeautifulSoup处理格式化后的字符串,一个标准的tag形式为:
hwkobe24
通过一些过滤方法,我们可以从soup中获取我们需要的信息:
(1) find_all ( name , attrs , recursive , text , **kwargs)
这里面,我们通过添加对标签的约束来获取需要的标签列表, 比如 soup.find_all ('p') 就是寻找名字为‘p’的 标签,而soup.find_all (class = "tittle") 就是找到所有class属性为"tittle" 的标签,以及soup.find_all ( class = re.compile('lass')) 表示 class属性中包含‘lass’的所有标签,这里用到了正则表达式(可以自己学习一下,非常有用滴)
当我们获取了所有想要标签的列表之后,遍历这个列表,再获取标签中你需要的内容,通常我们需要标签中的文字部分,也就是网页中显示出来的文字,代码如下:
tagList = soup.find_all (class="tittle") #如果标签比较复杂,可以用多个过滤条件使过滤更加严格
for tag in tagList:
print tag.text
f.write ( str(tag.text) ) #将这些信息写入本地文件中以后使用
(2)find( name , attrs , recursive , text , **kwargs )
它与 find_all( ) 方法唯一的区别是 find_all() 方法的返回结果是值包含一个元素的列表,而 find() 方法直接返回结果
(3)find_parents( ) find_parent( )
find_all() 和 find() 只搜索当前节点的所有子节点,孙子节点等. find_parents() 和 find_parent() 用来搜索当前节点的父辈节点,搜索方法与普通tag的搜索方法相同,搜索文档搜索文档包含的内容
(4)find_next_siblings() find_next_sibling()
这2个方法通过 .next_siblings 属性对当 tag 的所有后面解析的兄弟 tag 节点进代, find_next_siblings() 方法返回所有符合条件的后面的兄弟节点,find_next_sibling() 只返回符合条件的后面的第一个tag节点
(5)find_previous_siblings() find_previous_sibling()
这2个方法通过 .previous_siblings 属性对当前 tag 的前面解析的兄弟 tag 节点进行迭代, find_previous_siblings()方法返回所有符合条件的前面的兄弟节点, find_previous_sibling() 方法返回第一个符合条件的前面的兄弟节点
(6)find_all_next() find_next()
这2个方法通过 .next_elements 属性对当前 tag 的之后的 tag 和字符串进行迭代, find_all_next() 方法返回所有符合条件的节点, find_next() 方法返回第一个符合条件的节点
(7)find_all_previous() 和 find_previous()
这2个方法通过 .previous_elements 属性对当前节点前面的 tag 和字符串进行迭代, find_all_previous() 方法返回所有符合条件的节点, find_previous()方法返回第一个符合条件的节点
具体的使用方法还有很多,用到这里你应该可以解决大部分问题了,如果要更深入了解可以参考官方的使用说明哈!
Ⅳ 如何爬取网页表格数据
网页里的表格数据可以用爬虫比如python去采集,也可以用采集器去采集网页上的表格数据会更简单些。
Ⅳ 怎么批量采集网站上的数据(方法好的追加100分)
这是一个页面嵌套iframe的数据采集,先简单说一下采集原理:
通过你提供的Url定位一个楼盘(这个Url可带参数批量采集),通过解析获取楼盘的详细数据(就是看到的表格数据),这个过程可以通过导航来实现完成,找到iframe中的表格后,获取相应数据前置和后置标志可以采集表格数据(但这种情况意义不大),所以需要根据单元格获取内容的链接地址(即点击后打开的页面),然后在导航到这个页面,采集每个房间的详细信息(房间号、套型、面积等等)。
根据你提供的信息来看,这是一个多层导航的采集,如果需要批量采集,还需带有参数,这个任务配置起来较为复杂一些。
你可以使用的工具:Soukey采摘、网络矿工或网络神采。但好像免费版本都不支持这么复杂的采集案例,需要使用商业版。
Ⅵ 如何用最简单的Python爬虫采集整个网站
采集网站数据并不难,但是需要爬虫有足够的深度。我们创建一个爬虫,递归地遍历每个网站,只收集那些网站页面上的数据。一般的比较费时间的网站采集方法从顶级页面开始(一般是网站主页),然后搜索页面上的所有链接,形成列表,再去采集到的这些链接页面,继续采集每个页面的链接形成新的列表,重复执行。
Ⅶ 请问如何把网站的数据抓取下来
可以借助采集器软件,即使不懂代码也能采集网页上的数据,然后导出excel
Ⅷ 如何抓取网页上的数据
工具推荐你用免费的八爪鱼采集器,这种表格你需要实时抓取的话也可以,需要设置采集周期为实时采集,八爪鱼采集器最快支持1分钟采集一次的。采集表格也不难,点击你需要采集的列,设置循环采集所有行就可以。
Ⅸ 如何爬取网站上的某一信息
两类网站可以用不同的方法去爬取
一、开放API的网站
一个网站如果开放了API,那么就可以直接GET到它的json数据。有三种方法可以判断一个网站是否开放了API。
1、在站内寻找API入口;
2、用搜索引擎搜索“某网站API”;
3、抓包。有的网站虽然用到了ajax,但是通过抓包还是能够获取XHR里的json数据的(可用抓包工具抓包,也可以通过浏览器按F12抓包:F12-Network-F5刷新)。
二、不开放API的网站
1、如果网站是静态页面,那么可以用requests库发送请求,再通过HTML解析库(lxml、parsel等)来解析响应的text;解析库强烈推荐parsel,不仅语法和css选择器类似,而且速度也挺快,Scrapy用的就是它。
2、如果网站是动态页面,可以先用selenium来渲染JS,再用HTML解析库来解析driver的page_source。
Ⅹ python 爬虫 怎么爬多个网站数据
这种情况我自己还没有试过,只是借助爬虫框架pyspider结合PhantomJS,这样就可以在python里面嵌入一些js代码,实现点击,下拉等操作啦。