我是bash和Linux的新手.所以这可能是一个愚蠢的问题.
我正在尝试制作一个bash脚本来从网站下载多个文件.文件位于格式的URL中http://example.com/xyz/abc/2016/201601031400.tar.gz
请注意,文件名包含年,月,日期和时间.该数据贯穿了2007/01/01至2016/12/31的所有日期; 时间总是保持不变:"1400".
我想遍历日期范围中的每个日期,并希望下载所有tar.gz文件.
有人可以帮我解决循环部分并动态生成wget下载文件的URL吗?
我正在尝试使用经典的ASP抓取网页。为什么,因为我要在2个域中包含一个asp文件,而我不想更新2个副本。
我是整个Web抓取工具的新手,很难找到有关如何使用经典asp(不是我的喜好,而是我坚持的东西)的“ Dummies”教程。我不需要任何花哨的东西,只需从here.asp抓取整个页面源并将其发布在myotherpage.asp上即可。
在代码或教程中几乎没有帮助,将不胜感激。
我在python scrapy中编写了一个非常小的脚本来解析黄页网站上多个页面显示的名称,街道和电话号码.当我运行我的脚本时,我发现它运行顺利.但是,我遇到的唯一问题是数据在csv输出中被刮掉的方式.它总是两行之间的行(行)间隙.我的意思是:数据每隔一行打印一次.看到下面的图片,你就会明白我的意思.如果不是scrapy,我可以使用[newline =''].但是,不幸的是我在这里完全无助.如何摆脱csv输出中出现的空白行?提前谢谢你看看它.
items.py包括:
import scrapy
class YellowpageItem(scrapy.Item):
name = scrapy.Field()
street = scrapy.Field()
phone = scrapy.Field()
Run Code Online (Sandbox Code Playgroud)
这是蜘蛛:
import scrapy
class YellowpageSpider(scrapy.Spider):
name = "YellowpageSp"
start_urls = ["https://www.yellowpages.com/search?search_terms=Pizza&geo_location_terms=Los%20Angeles%2C%20CA&page={0}".format(page) for page in range(2,6)]
def parse(self, response):
for titles in response.css('div.info'):
name = titles.css('a.business-name span[itemprop=name]::text').extract_first()
street = titles.css('span.street-address::text').extract_first()
phone = titles.css('div[itemprop=telephone]::text').extract_first()
yield {'name': name, 'street': street, 'phone':phone}
Run Code Online (Sandbox Code Playgroud)
以下是csv输出的样子:
顺便说一句,我用来获取csv输出的命令是:
scrapy crawl YellowpageSp -o items.csv -t csv
Run Code Online (Sandbox Code Playgroud) 我想获得此页面上的数据:https : //www.zacks.com/stock/research/STNG/earnings-announcements
我试图用rvest做到这一点,但也许我必须使用RSelenium?不知道该怎么做,有人可以指导我吗?
test <- specific_stocks_earnings %>%
html_nodes("#earnings_announcements_tabs , .sorting_1") %>%
html_text()
test
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Scrapy下载我的Quora答案,但似乎无法下载我的页面。使用简单
scrapy shell 'http://it.quora.com/profile/Ferdinando-Randisi'
Run Code Online (Sandbox Code Playgroud)
返回此错误
2017-10-05 22:16:52 [scrapy.utils.log] INFO: Scrapy 1.4.0 started (bot: quora)
2017-10-05 22:16:52 [scrapy.utils.log] INFO: Overridden settings: {'NEWSPIDER_MODULE': 'quora.spiders', 'ROBOTSTXT_OBEY': True, 'DUPEFILTER_CLASS': 'scrapy.dupefilters.BaseDupeFilter', 'SPIDER_MODULES': \[quora.spiders'], 'BOT_NAME': 'quora', 'LOGSTATS_INTERVAL': 0}
....
2017-10-05 22:16:53 [scrapy.middleware] INFO: Enabled item pipelines:
[]
2017-10-05 22:16:53 [scrapy.extensions.telnet] DEBUG: Telnet console listening on 127.0.0.1:6023
2017-10-05 22:16:53 [scrapy.core.engine] INFO: Spider opened
2017-10-05 22:16:54 [scrapy.downloadermiddlewares.redirect] DEBUG: Redirecting (301) to <GET https://it.quora.com/robots.txt> from <GET http://it.quora.com/robots.txt>
2017-10-05 22:16:55 [scrapy.core.engine] DEBUG: Crawled (429) <GET https://it.quora.com/robots.txt> (referer: None) …Run Code Online (Sandbox Code Playgroud) 我一直在使用webscraping XML::readHTMLTable,现在我正在努力学习如何在更细微的层面上进行搜索.我的动机来自于尝试在多个日子里在网站上刮一张桌子来改变位置(例如,昨天它是页面上的第4个表格,今天它是页面上的第2个表格,等等).我将使用一个以各种体育赛事发布维加斯赔率的网站为例,我将特别试图提取NBA数据.
URL1 = "http://www.scoresandodds.com/grid_20161123.html"
URL2 = "http://www.scoresandodds.com/grid_20161125.html"
Run Code Online (Sandbox Code Playgroud)
你会注意到NBA桌子是第一张桌子URL1,它是第二张桌子URL2.认识到NBA是第一个表格,以下是我如何将其作为第一个网址:
library(XML)
URL1 = "http://www.scoresandodds.com/grid_20161123.html"
exTable = readHTMLTable(URL1)[[1]] %>%
# Find first blank, since NBA is the first table #
head(which(exTable[,1] == "")[1] - 1)
Run Code Online (Sandbox Code Playgroud)
然后我会从那里清理它.我知道这不是最好的方法,甚至考虑到我想要循环多天,因为需要进行所有的清洁.学习如何抓取网页表中的特定对象会更好.
我已经玩了rvest一些,我知道我可以为Vegas线获得看起来像"td.line"的节点,但是我试图选择特定表格的节点(css = "#nba > div.sport"或其他东西?).我不一定想要这个具体例子的答案,但学习如何做这个例子将允许我将技能应用于许多其他情况.在此先感谢您的帮助.
我想使用名为BeautifulSoup的库来抓取网站的内容。
码:
from bs4 import BeautifulSoup
from urllib.request import urlopen
html_http_response = urlopen("http://www.airlinequality.com/airport-reviews/jeddah-airport/")
data = html_http_response.read()
soup = BeautifulSoup(data, "html.parser")
print(soup.prettify())
Run Code Online (Sandbox Code Playgroud)
输出:
<html style="height:100%">
<head>
<meta content="NOINDEX, NOFOLLOW" name="ROBOTS"/>
<meta content="telephone=no" name="format-detection"/>
<meta content="initial-scale=1.0" name="viewport"/>
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible"/>
</head>
<body style="margin:0px;height:100%">
<iframe frameborder="0" height="100%" marginheight="0px" marginwidth="0px" src="/_Incapsula_Resource?CWUDNSAI=9&xinfo=9-57435048-0%200NNN%20RT%281512733380259%202%29%20q%280%20-1%20-1%20-1%29%20r%280%20-1%29%20B12%284%2c315%2c0%29%20U19&incident_id=466002040110357581-305794245507288265&edet=12&cinfo=04000000" width="100%">
Request unsuccessful. Incapsula incident ID: 466002040110357581-305794245507288265
</iframe>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
从浏览器检查内容时,主体包含iFrame balise,而不是显示的内容。
我想在登录页面后面抓取一些信息,但得到503
当我尝试使用Mechanicalsoup登录时(与robobrowser的结果相同),将发生以下情况:
>>> import mechanicalsoup
>>> browser = mechanicalsoup.StatefulBrowser(user_agent='Mozilla/5.0')
>>> page = browser.get('https://X.com')
>>> page.status_code
200
>>> page = browser.get('https://X.com/wp-login.php')
>>> page.status_code
503
Run Code Online (Sandbox Code Playgroud)
我尝试了几个不同的user_agents,如何解决呢?移动饼干?
我想抓一个网站的喜欢.使用BeautifulSoup,这是我到目前为止所得到的:
user = 'LazadaMalaysia'
url = 'https://www.facebook.com/'+ user
response = requests.get(url)
soup = BeautifulSoup(response.content,'lxml')
f = soup.find('div', attrs={'class': '_4bl9'})
Run Code Online (Sandbox Code Playgroud)
我收到的f输出如下:
<div class="_4bl9 _3bcp"><div aria-keyshortcuts="Alt+/" aria-label="Pembantu Navigasi" class="_6a _608n" id="u_0_8" role="menubar"><div class="_6a uiPopover" id="u_0_9"><a aria-expanded="false" aria-haspopup="true" class="_42ft _4jy0 _55pi _2agf _4o_4 _63xb _p _4jy3 _517h _51sy" href="#" id="u_0_a" rel="toggle" role="button" style="max-width:200px;"><span class="_55pe">Bahagian-bahagian pada halaman ini</span><span class="_4o_3 _3-99"><i class="img sp_m7lN5cdLBIi sx_d3bfaf"></i></span></a></div><div class="_6a _3bcs"></div><div class="_6a mrm uiPopover" id="u_0_b"><a aria-expanded="false" aria-haspopup="true" class="_42ft _4jy0 _55pi _2agf _4o_4 _3_s2 _63xb _p _4jy3 _4jy1 selected _51sy" href="#" …Run Code Online (Sandbox Code Playgroud) 我在python中编写了一个脚本,从网页中获取每个容器中的一些属性titles及其相应的email地址.当我运行我的脚本时,它只抓取titles但是在email address它刮擦的情况下只有这个文本连接到send eamil按钮.我怎样才能找到那些email addresses存在的东西,因为当我按下它时send email button,它会发送电子邮件.任何有关这方面的帮助将受到高度赞赏.
链接到该网站
这是我到目前为止所尝试的:
import requests
from bs4 import BeautifulSoup
URL = "use_above_link"
def Get_Leads(link):
res = requests.get(link)
soup = BeautifulSoup(res.text,"lxml")
for items in soup.select(".media"):
title = items.select_one(".item-name").text.strip()
try:
email = items.select_one("a[alt^='Contact']").text.strip()
except:
email = ""
print(title,email)
if __name__ == '__main__':
Get_Leads(URL)
Run Code Online (Sandbox Code Playgroud)
结果我喜欢:
Singapore Immigration Specialist SEND EMAIL
Faithful+Gould Pte Ltd SEND EMAIL
PsyAsia International SEND EMAIL
Activpayroll SEND EMAIL
Precursor …Run Code Online (Sandbox Code Playgroud) web-scraping ×10
python ×4
python-3.x ×2
r ×2
scrapy ×2
asp-classic ×1
bash ×1
csv ×1
facebook ×1
html-parsing ×1
linux ×1
mechanize ×1
quora ×1
rvest ×1