文件管理 · 2023年11月25日

爬虫下载文件|怎么用java写网络爬虫将网页中的指定数据下载到本地excel文档中

Ⅰ 怎么用java写网络爬虫将网页中的指定数据下载到本地excel文档中

mportjava.io.InputStream;importjava.net.*;publicclassHelloHttp{}接著就可以仿照下列范例建立HTTP连线:URLurl=newURL("http://tw.yahoo.com");HttpURLConnectionhttp=(HttpURLConnection)url.openConnection();http.setRequestMethod("POST");InputStreaminput=http.getInputStream();http.disconnect();第1行建立一个URL物件,带入参数为想要建立HTTP连线的目的地,例如网站的网址。第2行建立一个HttpURLConnection物件,并利用URL的openConnection()来建立连线。第3行利用setRequestMethod()来设定连线的方式,一般分为POST及GET两种。第4行将连线取得的回应载入到一个InputStream中,然後就可以将InputStream的内容取出应用,以这个例子而言我们取得的会是网页的原始码。第5行用disconnect()将连线关闭。将InputStream内容取出应用的范例如下:byte[]data=newbyte[1024];intidx=input.read(data);Stringstr=newString(data,0,idx);System.out.println(str);input.close();针对str作regularexpression处理,依照需求取得内容。

Ⅱ 请问怎么通过python爬虫获取网页中的pdf文件

首先把链接URL爬取出来,然后get流下载pdf文件,再用pdf模块来读取它。

Ⅲ python 下载文件到文件夹下的问题

open文件的时候就可以设置文件的路径,比如,这里改成open(r'd:\download\google.gif', 'wb').write(rs)就保存到那个文件夹下了。

Ⅳ 使用Python爬虫下载图片,得到的图片不显示

你需要检查一下你的结果,看看是否请求成功了。可能服务器返回的并不是一个图片,但是你强制给他写入到图片格式文件中了,所以没办法显示。你可以通过输出response或者使用抓包软件来检查。

Ⅳ Python3.xx中写爬虫,下载图片除了urlretrieve方法,还有什么库的什么方法呢

Part 1. urllib2urllib2是Python标准库提供的与网络相关的库,是写爬虫最常用的一个库之一。 想要使用Python打开一个网址,最简单的操作即是:your_url = "http://publicdomainarchive.com/"html = urllib2.urlopen(your_url).read()12这样所获得的就是对应网址(url)的html内容了。但有的时候这么做还不够,因为目前很多的网站都有反爬虫机制,对于这么初级的代码,是很容易分辨出来的。例如本文所要下载图片的网站http://publicdomainarchive.com/,上述代码会返回HTTPError: HTTP Error 403: Forbidden错误。那么,在这种情况下,下载网络图片的爬虫(虽然只有几行代码,但一个也可以叫做爬虫了吧,笑),就需要进一步的伪装。要让爬虫伪装成浏览器访问指定的网站的话,就需要加入消息头信息。所谓的消息头信息就是在浏览器向网络服务器发送请求时一并发送的请求头(Request Headers)信息和服务器返回的响应头(Response Headers)信息。例如,使用FireFox打开http://publicdomainarchive.com/时所发送的Request Headers的部分内容如下:Host:"publicdomainarchive.com/"User-Agent:"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"Accept:"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"…1234还有一些其他属性,但其中伪装成浏览器最重要的部分已经列出来了,即User-Agent信息。要使用Headers信息,就不能再仅仅向urlopen方法中传入一个地址了,而是需要将HTTP Request的Headers封装后传入:headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0'}req = urllib2.Request(url = url, headers = headers)content = urllib2.urlopen(req).read()123这样,就获得了网站的html内容。接下来,就需要从html去获取图片的链接。Part 2. HTMLParserHTMLParser是Python提供的HTML解析库之一。但Python提供的这个类中很多方法都没有实现,因而基本上这个库只负责进行解析,但解析完了什么都不做。所以如果需要对HTML中的某些元素进行加工的话,就需要用户自己去实现其中的一些方法。本文仅实现其中的handle_starttag方法:class MyHTMLParser(HTMLParser): #继承HTMLParser类def __init__(self): #初始化HTMLParser.__init__(self) def handle_starttag(self, tag, attrs):#参数tag即由HTMLParser解析出的开始标签,attrs为该标签的属性if tag == "img": #下载图片所需要的img标签if len(attrs) == 0: passelse: for (variable, value) in attrs: #在attrs中找到src属性,并确定其是我们所要下载的图片,最后将图片下载下来(这个方法当然也有其他的写法)if variable == "src" and value[0:4] == 'http' and value.find('x') >= 0:pic_name = value.split('/')[-1] print pic_namedown_image(value, pic_name)123456789101112131415Part 3. 下载图片从handle_starttag方法中,我们已经获得了图片的url,那么,最后一步,我们要下载图片了。当然,要获得网络上的图片,自然也需要向服务器发送请求,一样需要用到urllib2这个库,也需要用到上面所用到的请求头。以下是down_image()方法的主要代码:binary_data = urllib2.urlopen(req).read()temp_file = open(file_name, 'wb')temp_file.write(binary_data)temp_file.close()1234因为这次打开的网址是个图片,所以urllib2.urlopen(req).read()所获取的就是图片的数据,将这些数据需要以二进制的方式写入本地的图片文件,即将图片下载下来了。因为图片的url的最后一部分是图片的名字,所以可以直接用做本地的文件名,不用担心命名冲突,也不用担心后缀不符,很是方便。Part 4. getFreeImages.py这个下载图片的脚本的完整代码如下:import urllib2,osfrom HTMLParser import HTMLParser class MyHTMLParser(HTMLParser):def __init__(self):HTMLParser.__init__(self) #self.links = {}def handle_starttag(self, tag, attrs):#print "Encountered the beginning of a %s tag" % tagif tag == "img": if len(attrs) == 0: passelse: for (variable, value) in attrs: if variable == "src" and value[0:4] == 'http' and value.find('x') >= 0:pic_name = value.split('/')[-1] print pic_namedown_image(value, pic_name)def down_image(url,file_name):global headersreq = urllib2.Request(url = url, headers = headers)binary_data = urllib2.urlopen(req).read()temp_file = open(file_name, 'wb')temp_file.write(binary_data)temp_file.close()if __name__ == "__main__":img_dir = "D:\\Downloads\\domain images"if not os.path.isdir(img_dir):os.mkdir(img_dir)os.chdir(img_dir) print os.getcwd()url = ""headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0'}all_links = []hp = MyHTMLParser() for i in range(1,30):url = 'http://publicdomainarchive.com/public-domain-images/page/' + str(i) + '/'req = urllib2.Request(url = url, headers = headers)content = urllib2.urlopen(req).read()hp.feed(content)hp.close()041424344454647484950

Ⅵ java爬虫htmluinit框架批量下载文件

我用jsoup写爬虫,一般遇到html返回没有的内容。但是浏览器显示有的内容。都是分析页面的http请求日志。分析页面JS代码来解决。1、有些页面元素被隐藏起来了->换selector解决2、有些数据保存在js/json对象中->截取对应的串,分析解决3、通过api接口调用->伪造请求获得数据还有一个终极方法4、使用phantomjs或者casperjs这种headless浏览器

Ⅶ 论坛里需要VIP账号才能下载资源,怎么用网络爬虫获取它的下载地址.先给50 ,答对了再加。速度解决

论坛里德资源只有在后台设置可见时才能看到,否则就看不到了

Ⅷ 爬虫程序打包成exe之后能运行,但是无法下载资源

解决方法如下:解决方法:报错显示是未实例化。这里是unity的一个小bug。即生成xxgame.exe后unity会在你的工程目录下同步生成一个xxgamedata文件夹。而unity只会同步存储在“StreamingAssets”这个文件夹里的资源束。如果你之前存储打包资源的文件夹名字是你自定义的,这时xxgamedata文件夹里是不会有这些资源束的。将原来工程目录下存储资源束的文件夹复制一份进入xxgamedata文件夹。

Ⅸ python爬虫 将在线html网页中的图片链接替换成本地链接并将html文件下载到本地

import os,redef check_flag(flag): regex = re.compile(r'images\/') result = True if regex.match(flag) else False return result#soup = BeautifulSoup(open('index.html'))from bs4 import BeautifulSouphtml_content = '''<a href="https://xxx.com">测试01</a><a href="https://yyy.com/123">测试02</a><a href="https://xxx.com">测试01</a><a href="https://xxx.com">测试01</a>'''file = open(r'favour-en.html','r',encoding="UTF-8") soup = BeautifulSoup(file, 'html.parser')for element in soup.find_all('img'): if 'src' in element.attrs: print(element.attrs['src']) if check_flag(element.attrs['src']): #if element.attrs['src'].find("png"): element.attrs['src'] = "michenxxxxxxxxxxxx" +'/'+ element.attrs['src']print("##################################")with open('index.html', 'w',encoding="UTF-8") as fp: fp.write(soup.prettify()) # prettify()的作⽤是将sp美化⼀下,有可读性