因此,我正在尝试webscrape https://data.bls.gov/cgi-bin/surveymost?bls,并且能够弄清楚如何通过点击进行webscrape以获得一个表。
我正在练习的选择是在您选择与薪酬下的“雇用成本指数(ECI)文职(未调整)-CIU1010000000000A”相关联的复选框之后,然后选择“检索数据”。
处理完这两个之后,将显示一个表。这就是我要刮的桌子。
下面是我现在拥有的代码。
请注意,您必须在我放置
from bs4 import BeautifulSoup
from urllib.request import urlopen
import pandas as pd
import numpy as np
import requests
import lxml.html as lh
from selenium import webdriver
url = "https://data.bls.gov/cgi-bin/surveymost?bls"
ChromeSource = r"<browser driver>"
# Open up a Chrome browser and navigate to web page.
options = webdriver.ChromeOptions()
options.add_argument('--ignore-certificate-errors')
options.add_argument('--incognito')
options.add_argument('--headless') # will run without opening browser.
driver = webdriver.Chrome(ChromeSource, chrome_options=options)
driver.get(url)
driver.find_element_by_xpath("//input[@type='checkbox' and @value = 'CIU1010000000000A']").click()
driver.find_element_by_xpath("//input[@type='Submit' and @value = 'Retrieve data']").click()
i = 2
def myTEST(i):
xpath = '//*[@id="col' + str(i) + '"]'
TEST = driver.find_elements_by_xpath(xpath)
num_page_items = len(TEST)
for i in range(num_page_items):
print(TEST[i].text)
myTEST(i)
# Clean up (close browser once completed task).
driver.close()
<tr> == $0
<th id="col0"> Year </th>
<th id="col1"> Period </th>
<th id="col2">Estimated Value</th>
<th id="col2">Standard Error</th>
<tr>
一旦我能够获得标题,我想要获得内容。我能告诉你我是不是走在正确的道路上,是不是想多了,或者有没有一个更简单的方法来做这一切。我正在学习,这是我第一次尝试使用selenium库进行点击。我只想让它工作,这样我就可以在另一个表上再试一次,使它尽可能自动化或可重用(通过调整)。
实际上,您不需要selenium
,您只需要跟踪post
表单数据
,并在post
请求中应用相同的内容。
然后您可以轻松地使用pandas
加载表。
import requests
import pandas as pd
data = {
"series_id": "CIU1010000000000A",
"survey": "bls"
}
def main(url):
r = requests.post(url, data=data)
df = pd.read_html(r.content)[1]
print(df)
main("https://data.bls.gov/cgi-bin/surveymost")
说明:
注意:只要表不是通过JavaScript
加载的,您就可以读取它。否则,您可以尝试跟踪XHR
请求(请检查前面的回答),或者您可以使用Selenium
或Requests_HTML
来呈现JS
,因为Requests
是一个HTTP
库,它不能为您呈现它。
嗨,我想刮与美丽的汤,但通常iframe src应该是一个html链接,这次我遇到一个wordpress URL,基本上是文件夹结构,导致PHP文件。 我在想有没有什么办法可以把那个文件里的桌子刮开? 当我检查Chrome中的元素时,表DIV标记存在,然而,当我用BeautifulSoup加载链接时,iframe中的内容就会消失(表)。 请帮忙
我是一个相当新的时候,谈到这一点,我已经工作了几天的网页刮削现在。我一直在积极地试图避免问这个问题,但我真的被困住了。 我的问题 我当前定位的span循环的位置,每次运行“for product”循环时,它都会打印每个列表的所有价格。如果我把它放在这个循环之外,它要么打印列表中的第一个,要么打印列表中的最后一个。如何提取价格并将其打印在每个产品的旁边。 我知道我有很多未使用的进口产品。这些只是我尝
我可以浏览此网站的第一页: http://ratings.food.gov.uk/enhanced-search/en-GB/^/伦敦/相关性/0/^/^/0/1/10 但我正试图通过使用网站分页中的“下一步”按钮来刮除网站上的所有其他页面。 我单击了Next按钮,可以看到第2页的参数从0/1/10更改为0/2/10,以此类推。 我已经看了分页代码,我可以看到分页在一个Div中 问题是,我仅使用以
我需要从一个网站刮去内容(只是标题)。我做了一个页面,但我会需要做的网站上的所有页面。目前,我正在做以下工作: 我知道,当我移动到下一页时,url会发生如下变化: 我尝试使用next_page_url=base_url+next_page_partial构建一个递归函数,但它不会移动到下一页。 我遵循这个问题(和答案):移动到下一页使用BeautifulSoup刮刮 如果你需要更多的信息请告诉我。
最近我一直在用Python和靓汤学习网页刮刮乐。然而,当我试图刮下下面的页面时,我遇到了一点麻烦: http://www.librarything.com/work/3203347 我想从页面上得到的数据是这本书的标签,但我找不到任何方法来获取数据,尽管我花了很多时间在网上拖网。 我试着在网上看了几本指南,但似乎没有一本奏效。我尝试将页面转换为XML和JSON,但仍然找不到数据。 我现在有点手足无
问题内容: 如何检索网页链接并使用Python复制链接的URL地址? 问题答案: 这是在中使用类的一小段代码: