Попробуйте использовать библиотеку lxml. Ответ получен путем размещения запроса на URL с использованием запросов.
import requests
import lxml
from lxml import html
contact_list = []
def scrape(url, pages):
for page in range(1, pages):
headers = {
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36",
"X-Requested-With": "XMLHttpRequest",
"Cookie": "PHPSESSID=2q0tk3fi1kid0gbdfboh94ed56",
}
data = {
"page": f"{page}"
}
r = requests.post(url, headers=headers, data=data)
tree = html.fromstring(r.content)
links= tree.xpath('//a[@class="link_orange"]')
for link in links:
# print(link.get('href'))
contact_list.append(link.get('href'))
url = "http://www.indiabusinessguide.in/ajax_advertiselist.php"
scrape(url, 10)
print(contact_list)
print(len(contact_list))
Я только что попробовал это в VS2008 на Windows XP и получил предупреждение о переполнении буфера, как на VS2008 до, так и после SP1.
Интересно, что проблема кажется быть сосредоточенным вокруг передачи строки в do_stuff либо по ссылке, либо по значению - если я использую исходный код, он жалуется на переполнение буфера, но если я передаю строку в значении , он работает нормально. Это с многопоточной средой выполнения DLL отладки. Ошибка исчезает, когда вам нравится статическая среда выполнения MT Debug.
В обоих случаях предварительно скомпилированные заголовки были отключены, а файлы, которые обычно генерируют предварительно скомпилированные заголовки, были удалены из проекта.
После прочтения это статья на MSDN I '
Похоже, что это известная ошибка в VS2005, исправленная в VS2005 SP1:
Похоже, это было сделано парнем, который написал об этом на gamedev.net.
I 'я не уверен, как или почему он мог бы вернуться в VS2008 (есть ли у вас заголовки из VS2005, которые могут быть получены или что-то в этом роде?)
Ваш код работает нормально в режиме отладки / выпуска на моем VS2005. Я отключил предварительно скомпилированные заголовки и использую многопоточную версию DLL библиотеки времени выполнения.
Проверено с VS2008 SP1 на компьютере с Vista (без предварительно скомпилированных заголовков, многопоточная DLL). Работает просто отлично.
Проверьте вашу установку.
Я сообщил о проблеме на веб-сайте Microsoft. Они признали ошибку и сказали, что исправили ее в следующей версии.
http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=435483