新手python爬虫代码(谁有python爬虫代码了给我分享一下谢谢)
本文目录
谁有python爬虫代码了给我分享一下谢谢
import requestsimport threadingfrom lxml import etreeheader={’User-Agent’: ’Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36 Edg/99.0.1150.39’}class 爬虫(threading.Thread):def __init__(self,id):threading.Thread.__init__(self)self.id=iddef run(self):try:url=r’
python新手求助 关于爬虫的简单例子
#coding=utf-8from bs4 import BeautifulSoupwith open(’index.html’, ’r’) as file: fcontent = file.read()sp = BeautifulSoup(fcontent, ’html.parser’)t = ’new_text_for_replacement’# replace the paragraph using `replace_with` methodsp.find(itemprop=’someprop’).replace_with(t)# open another file for writingwith open(’output.html’, ’w’) as fp: # write the current soup content fp.write(sp.prettify())如果要替换段落的内容而不是段落元素本身,可以设置.string属性。sp.find(itemprop=’someprop’).string = t赞0收藏0评论0分享用户回答回答于 2018-07-26问题取决于你搜索标准的方式,尝试更改以下代码: print(sp.replace(sp.find(itemprop=“someprop“).text,t))对此: print(sp.replace(sp.find({“itemprop“:“someprop“}).text,t))# coding:utf-8from bs4 import BeautifulSoupimport requestsimport osurl = ’https://’r = requests.get(url)demo = r.text # 服务器返回响应soup = BeautifulSoup(demo, “html.parser“)“““demo 表示被解析的html格式的内容html.parser表示解析用的解析器“““ # 输出响应的html对象ab = list()with open(“D:\\temp\\mii.txt“,“w+“,encoding=“utf-8“) as xxx: for mi in soup.find_all(’a’): ab.append(mi.prettify()) # 使用prettify()格式化显示输出 # xxx.writelines(str(mi))xxx.writelines(ab)xxx.close()
如何利用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 = ’ 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()方法返回第一个符合条件的节点 具体的使用方法还有很多,用到这里你应该可以解决大部分问题了,如果要更深入了解可以参考官方的使用说明哈!
更多文章:

idea官网网址(Linux平台上,2018年度Snap格式应用都有哪些)
2025年2月9日 12:20

narrative essay(Narrative Essay(个人叙事性论文)怎么写 有人能帮忙下吗)
2025年2月15日 08:10

宋思明海藻什么电视剧(《蜗居》海藻下场凄惨,哪些细节表明宋思明是真的爱上她了)
2025年2月23日 10:10

iframe跨域自动登录(如何使用iframe实现跨域写入cookie 并且兼容大部分浏览器)
2025年2月11日 11:50

php论坛源码织梦(腾讯云(还有谁)个人博客织梦系统源码 php版)
2025年2月22日 22:00

wiggle表达式(ae里动画选项里的摇摆器命令和wiggle有什么区别)
2025年2月18日 01:00

java小项目(有没有适合java初学者的小项目,综合性比较强的,web后端,推荐几个,面试用)
2025年2月19日 22:00

distribute什么意思(distributed是什么意思)
2025年3月29日 03:00

rules of survival(野性的呼唤 文学评论/读后感如题 谢谢了)
2025年4月2日 22:30